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


81

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 --

Ubuntu에서 uwsgi는 서비스로 시작됩니다 service uwsgi start..
소린

답변:


109

원래 답변

들어 파이썬이 우분투 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은이 편리한 가이드를 참조하십시오.


이것에 상응하는 것 (yum 플러그인 설치 + uwsgi 구성 변경)은 CentOS7에서 저에게 효과적이었습니다.
Mike Howsden 2017-10-26

머리가 부러져이 문제를 해결할 수 없습니다. 감사합니다 !
SuperNova

알파인 리눅스는 어떻습니까?
Adam Parkin

"개별 uwsgi 앱 구성"파일이 어디에 있는지 모르겠습니다. 좀 더 구체적으로 말씀해 주시겠습니까? 내 uwsgi 앱의 ini 파일입니까? / etc / something 파일? 파일 내용이 어떻게 생겼는지 샘플을 붙여 넣어 당신이 무엇을 말하는지 알 수 있습니까? 그리고 파일의 일반적인 위치는 무엇입니까?
Jason

(사실 7 년)이 문제에 대해 걱정해야했던 지 꽤 오래되었지만 실제로 uwsgi앱의 ini 파일을 의미 합니다. 아마도 상상할 수 있듯이 더 이상 구성 파일이 없지만 빠른 Google 검색 으로이 (겉보기에) 편리한 가이드를 만들었습니다 . ini 파일의 위치는 현실적으로 거의 모든 곳에서 살 수 있습니다. 특히 모험심을 느낀다면 다음과 같이 전 세계의 다른 웹 서버에서 해당 ini 파일을 제공 할 수도 있습니다.uwsgi --ini http://uwsgi.it/configs/myapp.ini
SHaKie

26

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


2
@SHaKie 답변과 해결로 자세한 내용과 설정 질문 넓은 답을 쓰기 바랍니다
b1_

15

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


8

에서 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;
}

0

저는 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.