백엔드 개발 PHP 튜토리얼 nginx+gunicorn+장고

nginx+gunicorn+장고

Aug 08, 2016 am 09:30 AM
app django gunicorn nbsp

<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 헤더를 설치해야 합니다


~$ sudo apt-get install python-dev

gunicorn 버전을 확인할 수 있습니다

~$ gunicorn -- version

Gunicorn(버전 19.1.1)

2. gunicorn 명령 사용

gunicorn을 성공적으로 설치한 후 다음 세 가지 명령을 직접 사용하여 gunicorn을 시작하고 wsgi 응용 프로그램 또는 wsgi를 실행할 수 있습니다. 프레임워크.

1. gunicorn

Gunicorn 서버의 가장 기본적인 명령으로, 가장 기본적인 wsgi 애플리케이션을 직접 실행하는데 사용됩니다.

사용법: gunicorn [OPTIONS] APP_MODULE

OPTIONS 선택적 매개변수 gunicorn 실행을 위한 구성 옵션에 대해서는 나중에 설명합니다.

APP_MODULE은 wsgi 애플리케이션 파일을 $(MODULE_NAME):$(VARIABLE_NAME) 형식으로 지정합니다. 그 중 module_name은 실행할 wsgi 응용프로그램 파일을 지정하는데 사용되지만 완전한 장식 이름이다.

예를 들어 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
로그인 후 복사
4. gunicorn 프레임워크 소개

     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的时候,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教程有兴趣的朋友有所帮助。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Jingdong Mall APP에서 실명인증하는 방법 Jingdong Mall APP에서 실명인증하는 방법 Mar 19, 2024 pm 02:31 PM

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

Django와 Flask: Python 웹 프레임워크 비교 분석 Django와 Flask: Python 웹 프레임워크 비교 분석 Jan 19, 2024 am 08:36 AM

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

홍콩 Apple ID 등록 절차 및 주의사항(홍콩 Apple Store만의 장점을 누리세요) 홍콩 Apple ID 등록 절차 및 주의사항(홍콩 Apple Store만의 장점을 누리세요) Sep 02, 2024 pm 03:47 PM

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

Django 프레임워크의 장점과 단점: 알아야 할 모든 것 Django 프레임워크의 장점과 단점: 알아야 할 모든 것 Jan 19, 2024 am 09:09 AM

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

China Unicom 앱에서 데이터 패키지를 취소하는 방법 China Unicom에서 데이터 패키지를 취소하는 방법 China Unicom 앱에서 데이터 패키지를 취소하는 방법 China Unicom에서 데이터 패키지를 취소하는 방법 Mar 18, 2024 pm 10:10 PM

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

Django 버전을 업그레이드하는 방법: 단계 및 고려 사항 Django 버전을 업그레이드하는 방법: 단계 및 고려 사항 Jan 19, 2024 am 10:16 AM

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

멀티포인트 앱으로 송장 발행 방법 멀티포인트 앱으로 송장 발행 방법 Mar 14, 2024 am 10:00 AM

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

Blackmagic의 전문가 수준 비디오 앱이 Android에 출시되었지만 휴대폰에서 실행하지 못할 수도 있습니다. Blackmagic의 전문가 수준 비디오 앱이 Android에 출시되었지만 휴대폰에서 실행하지 못할 수도 있습니다. Jun 25, 2024 am 07:06 AM

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

See all articles