[nginx] nginx + uwsgi : — 요청한 수정자를 사용할 수 없음 : 0-

Ubuntu 12.04, nginx 1.2.0, uwsgi 1.0.3.

다음 명령으로 uwsgi를 시작합니다.

uwsgi -s 127.0.0.1:9010 -M -t 30 -A 4 -p 4 -d /var/log/uwsgi.log

각 요청에서 nginx는 502로 응답하고 uwsgi는 다음 줄을 기록합니다.

-- unavailable modifier requested: 0 --



답변

원래 답변

들어 파이썬이 우분투 11.10에, 사용 upstart을위한 파이썬 플러그인을 설치 uWSGIapt-get install uwsgi-plugin-python당신이 당신의 구성 할 INI 파일을 사용하는 경우 uWSGI응용 프로그램을 다음 추가를 plugins = python받는 [uwsgi]부분과이 문제를 해결해야한다.

편집 : Python 3 및 Ubuntu 17.10 용으로 업데이트 됨

들어 파이썬 3 우분투 17.10에, 사용 systemd을위한 파이썬 플러그인을 설치 uWSGIapt-get install uwsgi-plugin-python3당신이 당신의 구성 할 INI 파일을 사용하는 경우 uWSGI응용 프로그램을 다음 추가를 plugins = python받는 [uwsgi]부분과이 문제를 해결해야한다.

파일을 사용하여 구성하는 방법을 포함하여 python/ uWSGI앱 시작에 대한 자세한 내용 ini은이 편리한 가이드를 참조하십시오.


답변

uwsgi-plugin-python3플러그인 설치 및 시작 명령 --plugin python3옵션 추가로 해결uwsgi


답변

우분투에서 시작하여 uwsgi를 시작했습니다. 을 실행 apt-get install uwsgi-plugin-python한 다음 plugins=python/ etc / uwsgi / applications-available에서 내 application.ini에 추가 하여 문제를 해결했습니다 .


답변

에서 http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html 특정 플러그인에 대한 요청을 라우팅 “, 웹 서버의 요구는 uWSGI 인스턴스에 대한 수정으로 알려진 마법의 번호를 전달합니다.하여이 기본 숫자는 0으로 설정되어 Python에 매핑됩니다. “

bash 스크립트에 9를 사용하고 있으며 작동합니다. 숫자와 그 의미는이 페이지에 있습니다 : http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html

내 nginx 구성에서 :

location ~ .cgi$ {
    include uwsgi_params;
    uwsgi_modifier1 9;
    uwsgi_pass 127.0.0.1:3031;
}


답변

저는 Python 3과 함께 Ubuntu 18.04를 사용하고 있습니다. 다음은 작동하는 데 사용한 정확한 구성입니다.

Python 3 uWSGI 플러그인이 설치되어 있어야합니다.

apt install uwsgi-plugin-python3

Nginx 사이트 구성은 uWSGI 소켓을 가리켜 야합니다. 포트가 이후 단계의 구성과 일치하는지 확인하십시오.

    location / {
        uwsgi_pass 127.0.0.1:9090;
        include uwsgi_params;
    }

방금 변경 한 사항을 반영하도록 Nginx 구성을 다시로드합니다.

systemctl reload nginx

구성을 위해 명령 줄 인수 또는 ini 파일을 사용할 수 있습니다. 내가 만들었습니다 uwsgi.ini. 소켓 주소가 nginx 구성과 일치하는지 확인하십시오.

[uwsgi]
socket = 127.0.0.1:9090
chdir = /var/www
processes = 4
threads = 2
plugins = python3
wsgi-file = /var/www/app.py

내 app.py에는 기본적인 예가 있습니다.

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/plain')])
    return [b"Hello World!"]

이제 명령 줄에서 uWSGI 서버를 시작합니다.

uwsgi uwsgi.ini


답변