nginx+gunicorn+장고
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">官方地址:http://gunicorn.org/</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> http://docs.gunicorn.org/en/19.2/</span>
참조 주소: http://www.cnblogs.com/ArtsCrafts/p/gunicorn.html
.com/1030776/1276364
1. 소개
WSGI 서버란 무엇입니까?
예를 들어 Flask, webpy, Django 및 CherryPy는 모두 WSGI 서버와 함께 제공됩니다. 물론 성능은 좋지 않습니다. 내장된 웹 서버는 테스트에 더 적합합니다. 온라인에 게시할 때는 고성능 wsgi 서버를 사용하거나 nginx와 결합하여 uwsgi를 수행합니다.
2. gunicorn 설치
~$ sudo pip install gunicorn
Gunicorn이 비동기 작업자를 지원하도록 하려면 Python 패키지 3개를 설치해야 합니다. 🎜>
~$ sudo pip install greenlet ~$ sudo pip install eventlet ~$ sudo pip install gevent참고: Greenlet 설치에 실패하면 Python 헤더를 설치해야 합니다 Gunicorn(버전 19.1.1)
예를 들어 Python 패키지 gunicorn_app이 있고, 현재 디렉터리 MyApp 디렉터리 아래 gunicorn_app 패키지에는 WSGI 응용 프로그램 파일 test.py가 있습니다.
그러면 module_name을 gunicorn_app.test로 직접 작성할 수 있습니다.
Variable_name은 module_name 파일에서 호출할 객체(WSGI 호출 가능, 함수일 수 있음)의 이름을 나타냅니다.
위의 예에 따르면 현재 디렉터리는 /home/workspace/myapp이고 myapp에 gunicorn_app 패키지가 있습니다. test.py 코드는 다음과 같습니다.
.py에서 테스트 앱
def app(environ, start_response): """Simplest possible application object""" data = 'Hello, World!\n' status = '200 OK' response_headers = [ ('Content-type','text/plain'), ('Content-Length', str(len(data))) ] start_response(status, response_headers) return iter([data])
을 실행하겠습니다. gunicorn gunicorn_app.test:app
2. gunicorn_django
guniorn_django 명령은 Django 앱을 배포하는 데 사용됩니다. 건니콘 서버.
실제로는 매우 간단합니다. gunicorn_django를 Django에 더 적합하도록 특수 처리했다는 점만 빼면 원리는 gunicorn과 같습니다.
기본 사용법: gunicorn_django [OPTIONS] [SETTINGS_PATH]
OPTIONS는 이전에 언급되었습니다.
SETTINGS_PATH django 앱의 settings.py 파일이 있는 디렉터리입니다. 작성하지 않으면 기본적으로 현재 디렉터리에서 검색됩니다.
하지만 이 사용법은 Django1.4 이전에도 적용됩니다. Django1.4 이상 버전에서는 gunicorn 명령을 사용하는 것이 좋습니다.
3. gunicorn_paster
이 명령에 관심이 있다면 공식 문서에서 학습할 수 있습니다.
3. Gunicorn 구성
Gunicorn은 세 곳에서 구성 정보를 읽습니다.
첫 번째: 프레임워크에서 정의한 구성 정보를 읽습니다. 현재는 Paster 프레임워크에만 유효합니다.
두 번째 장소: 명령줄에 정의됩니다. 명령줄에 정의된 구성 정보는 프레임워크에 정의된 동일한 매개변수 이름의 값을 덮어씁니다.
세 번째: 구성 파일을 생성하고 파일에 구성 정보를 씁니다(파이썬 소스 파일이므로 파이썬 코드 작성과 같습니다).
gunicorn -h를 통해 모든 명령 구성 정보를 봅니다.
공식 문서를 통해 더 자세한 정보를 볼 수도 있습니다: http://docs.gunicorn.org/en/19.2/
예를 들어 위의 myapp 예시를 기반으로
gunicorn --workers=4 --bind=127.0.0.1:8000 myapp.gunicorn_app.test:app
위 명령은 4개의 워커를 시작하고 127.0.0.1:8000
에 바인딩합니다. 또는 구성 파일을 사용할 수 있습니다. 다음은 config.py 구성 파일 소스 코드입니다.
gunicorn --config=config.py myapp.gunicorn_app.test:app
import multiprocessing bind = "127.0.0.1:8001" workers = multiprocessing.cpu_count() * 2 + 1
Gunicorn是基于pre-fork模型的。也就意味着有一个中心管理进程(master process)用来管理worker进程集合。Master从不知道任何关于客户端的信息。所有请求
和响应处理都是由worker进程来处理的。
Master(管理者)
主程序是一个简单的循环,监听各种信号以及相应的响应进程。master管理着正在运行的worker集合。
Worker类型
1. Sync Workers
最基本的也是默认的worker type。
一个同步的worker class,同一时间只能控制一个request请求。
2. Async Workers
异步workers的使用是基于Greenlets(通过Eventlet和Gevent)。所以使用此worker type之前一定要安装好python对应的包。
Greenlets是python多线程协作的一个实现。
3. Tornado Workers
这是一个Tornado worker class。
五、Gunicorn部署
使用Gunicorn必须基于一个代理服务器。
1. Nginx Configuration
虽然有很多HTTP代理可以使用,但是我们还是强烈推荐Nginx。如果你选择了其他代理服务器,你需要确认,当你使用默认的Gunicorn workers时,它能够buffers slow clients。没有buffering Gunicorn将很容易受 denial of service attacks的影响。也可使用 slowloris 去核实你的代理服务器是否工作良好。
如下是一个nginx配置文件实例(假设127.0.0.1:8888端口已经被gunicorn绑定监听):
server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 listen 80; client_max_body_size 4G; server_name www.android_stat.com keepalive_timeout 5; location / { try_files $uri @proxy_to_app; } location @proxy_to_app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://127.0.0.1:8888; }
注意:要监控Gunicorn的时候,Gunicorn不能启动daemon模式,如果使用daemon模式会fork出一个进程,这样监控工具就没法监控这个进程。
我在这只介绍supervisor
1. Supervisor
Supervisor可以用来监控进程,下面是一个简单的supervisor的配置文件:
[program:gunicorn] command=/path/to/gunicorn main:application -c /path/to/gunicorn.conf.py directory=/path/to/project user=nobody autostart=true autorestart=true redirect_stderr=true
以上就介绍了nginx+gunicorn+django,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Jingdong Mall APP에서 실명인증을 받는 방법은 무엇입니까? Jingdong Mall은 많은 친구들이 자주 사용하는 온라인 쇼핑 플랫폼입니다. 쇼핑하기 전에 모든 사람이 완전한 서비스를 즐기고 더 나은 쇼핑 경험을 얻을 수 있도록 실명 인증을 수행하는 것이 가장 좋습니다. 다음은 JD.com 실명인증 방법입니다. 네티즌분들께 도움이 되었으면 좋겠습니다. 1. JD.com을 설치하고 열고 개인 계정에 로그인합니다. 2. 그런 다음 페이지 하단의 [내]를 클릭하여 개인 센터 페이지로 들어갑니다. 3. 그런 다음 화면에서 작은 [설정] 아이콘을 클릭합니다. 오른쪽 상단에서 설정 기능 인터페이스로 이동합니다. 4. [계정 및 보안]을 선택하여 계정 설정 페이지로 이동합니다. 5. 마지막으로 [실명 인증] 옵션을 클릭하여 실명 정보를 입력합니다. 설치시스템에서는 실제 개인정보를 입력하고 실명인증을 완료해야 합니다.

Django와 Flask는 모두 Python 웹 프레임워크의 리더이며 둘 다 고유한 장점과 적용 가능한 시나리오를 가지고 있습니다. 이 기사에서는 이 두 프레임워크를 비교 분석하고 구체적인 코드 예제를 제공합니다. 개발 소개 Django는 모든 기능을 갖춘 웹 프레임워크이며, 주요 목적은 복잡한 웹 애플리케이션을 신속하게 개발하는 것입니다. Django는 ORM(Object Relational Mapping), 양식, 인증, 관리 백엔드 등과 같은 다양한 내장 기능을 제공합니다. 이러한 기능을 통해 Django는 대규모 처리를 수행할 수 있습니다.

Apple의 제품과 서비스는 항상 전 세계 사용자들에게 사랑을 받아왔습니다. 홍콩 Apple ID를 등록하면 사용자에게 더 많은 편리함과 특권이 제공됩니다. 홍콩 Apple ID를 등록하는 단계와 주의해야 할 사항을 살펴보겠습니다. 홍콩 Apple ID를 등록하는 방법 Apple 장치를 사용할 때 많은 응용 프로그램과 기능에 로그인하려면 Apple ID를 사용해야 합니다. 홍콩에서 애플리케이션을 다운로드하거나 홍콩 AppStore의 특혜 콘텐츠를 즐기려면 홍콩 Apple ID를 등록하는 것이 매우 필요합니다. 이 기사에서는 홍콩 Apple ID를 등록하는 방법과 주의해야 할 사항에 대한 단계를 자세히 설명합니다. 단계: 언어 및 지역 선택: Apple 장치에서 "설정" 옵션을 찾아 입력하세요.

Django는 웹 개발 라이프사이클의 모든 측면을 포괄하는 완전한 개발 프레임워크입니다. 현재 이 프레임워크는 전 세계적으로 가장 인기 있는 웹 프레임워크 중 하나입니다. Django를 사용하여 자신만의 웹 애플리케이션을 구축하려는 경우 Django 프레임워크의 장점과 단점을 이해해야 합니다. 특정 코드 예제를 포함하여 알아야 할 모든 것이 여기에 있습니다. Django의 장점: 1. 빠른 개발 - Djang은 웹 애플리케이션을 빠르게 개발할 수 있습니다. 풍부한 라이브러리와 내부 기능을 제공합니다.

China Unicom 앱은 모든 사람의 요구를 쉽게 충족할 수 있습니다. 다양한 서비스를 처리하고 싶다면 여기에서 제때에 구독을 취소할 수 있습니다. 후속 손실을 피하기 위해 많은 사람들이 휴대폰을 사용할 때 데이터가 충분하지 않다고 느껴 추가 데이터 패키지를 구입하지만 다음 달에 원하지 않으면 즉시 구독을 취소하려는 경우가 있습니다. 에디터가 설명하는 구독 취소 방법을 제공하여, 필요한 친구들이 와서 사용할 수 있도록 해드립니다! China Unicom 앱의 오른쪽 하단에 있는 "내" 옵션을 찾아 클릭하세요. 내 인터페이스에서 내 서비스 열을 슬라이드하고 "주문했습니다" 옵션을 클릭하세요.

Django 버전 업그레이드 방법: 단계 및 고려 사항, 필요한 특정 코드 예제 소개: Django는 더 나은 성능과 더 많은 기능을 제공하기 위해 지속적으로 업데이트되고 업그레이드되는 강력한 Python 웹 프레임워크입니다. 그러나 이전 버전의 Django를 사용하는 개발자의 경우 Django를 업그레이드하는 데 몇 가지 어려움이 있을 수 있습니다. 이 글에서는 Django 버전을 업그레이드하는 방법에 대한 단계와 주의 사항을 소개하고 구체적인 코드 예제를 제공합니다. 1. Djan을 업그레이드하기 전에 프로젝트 파일을 백업하세요.

구매 증빙 자료인 송장은 우리의 일상 생활과 업무에 매우 중요합니다. 그럼 우리가 평소 듀오디안 앱을 사용해 쇼핑을 할 때, 듀오디안 앱에서 쉽게 송장을 발행할 수 있는 방법은 무엇일까요? 아래에서 이 웹사이트의 편집자가 멀티 포인트 앱에서 송장을 개설하는 방법에 대한 자세한 단계별 가이드를 제공합니다. 더 알고 싶은 사용자는 이 내용을 놓치지 마세요. [송장센터]에서 [다점슈퍼마켓/무료쇼핑]을 클릭하고, 완료된 주문페이지에서 송장발행이 필요한 주문을 선택한 후, 다음을 클릭하여 [송장정보], [수취인정보]를 입력한 후, 몇 분 후 수신 메일함을 입력하여 이메일을 열고 전자 청구서 다운로드 주소를 클릭한 후 마지막으로 전자 청구서를 다운로드하여 인쇄하세요.

Blackmagic Design은 마침내 호평을 받은 Blackmagic Camera 앱을 Android에 출시했습니다. 전문 비디오 카메라 앱은 무료로 다운로드할 수 있으며 완전한 수동 제어 기능을 제공합니다. 이러한 컨트롤은 프로 수준의 cin을 더 쉽게 수강할 수 있도록 하는 것을 목표로 합니다.
