2013-10-06 3 views
1

편의상 대부분의 html 출력을 생성하는 Python 스크립트가 너무 많아서 자연스럽게 현재 테스트 환경에서 스크립트를 호스트하는 간단한 설정을 사용하고 싶습니다. 장고, 플라스크, web2py 또는 뭐든간에 프로젝트를 설정하는 것은 내가 필요로하는 모든 어리석은 일에 너무 많은 번거 로움이 있습니다. 단지 .py를 작성하고 PHP와 마찬가지로 다른 것을 구성하지 않고 찾아보기를 원합니다.간단한 nginx + uWSGI 설정 문제

내가 정확히 어떤 문제가 확실하지 않다 때문에 며칠이 함께 고전을 면치 못하고, 그래서 난 그냥 설정 파일 내 현재 시도 게시합니다 :

의 nginx :

location ~ \.py$ { 
    uwsgi_pass unix:///path/to/socket; 
    uwsgi_param SCRIPT_NAME $uri; 
    include uwsgi_params; 
} 

uWSGI

[uwsgi] 
plugins = python3 
py-auto-reload = 1 #So I dont have to reload the service every time 

test.py

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

나는의 nginx와 uwsgi 설정에 많은 많은 많은 변화를 가지고 있지만 난 항상 얻을 :

uWSGI 오류

발견되지 파이썬 응용 프로그램

그리고 로그 항상 다음과 같은 내용을 보여줍니다.

[pid: 10423|app: -1|req: -1/10] 10.0.20.101() {42 vars in 675 bytes} [Sun Oct 6 08:25:51 2013] GET /test.py => generated 48 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0) 
- 
Sun Oct 6 08:26:44 2013 - unable to load app 0 (mountpoint='/var/www/test.py') (callable not found or import error) 
[pid: 10423|app: -1|req: -1/12] 10.0.20.101() {44 vars in 707 bytes} [Sun Oct 6 08:26:44 2013] GET /test.py => generated 48 bytes in 0 msecs (H 
TTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0) 
- 
Sun Oct 6 07:22:36 2013 - unable to load app 0 (mountpoint='/test.py') (callable not found or import error) 
[pid: 10423|app: -1|req: -1/12] 10.0.20.101() {44 vars in 707 bytes} [Sun Oct 6 08:26:44 2013] GET /test.py => generated 48 bytes in 0 msecs (H 
TTP/1.1 500) 2 headers in 63 bytes (0 switches on core 0) 

답변

0

이것은 WSGI 앱이 작동하는 방식이 아닙니다. 그것들은 일반적으로 nginx가 요청을 전달하는 장시간 실행되는 어플리케이션입니다. CGI와 유사한 설정을 요구하기 때문에 uWSGI CGI 모듈 (http://uwsgi-docs.readthedocs.org/en/latest/CGI.html)을 사용해야합니다. 그 애플 리케이션은 분명히 CGI를 준수해야합니다. 이게 네가 원하는 건지 확신 할 수 없지만 WSGI 앱이 어떻게 작동하는지에 대해 약간의 시간을 투자 할 것을 강력히 제안한다. 요즘은 다른 모든 것들이 요즘 어떻게 작동하는지 (펄/PSGI, 루비/랙 ...)

참고 : 수행하려는 작업을 정확하게 관리하는 사람들의 (uWSGI) 구성을 찾을 수는 있지만 정상적인 방법은 아닙니다.