문제

나는 wsgi가 mod_python이 아니라 갈 길이라는 말을 들었습니다.하지만 더 구체적으로 멀티 웹사이트 서버 환경을 어떻게 설정하시겠습니까?웹 서버 등의 선택?

도움이 되었습니까?

해결책

Apache+mod_wsgi가 일반적인 선택입니다.

다음은 /wsgi/something에 대한 요청을 애플리케이션에 매핑하도록 설정하는 간단한 가상 호스트 예입니다(이후 PATH_INFO를 보고 작업을 선택하거나 디스패치를 ​​수행할 수 있음).루트 URL '/'도 WSGI 애플리케이션으로 라우팅됩니다.

LoadModule wsgi_module /usr/local/lib/mod_wsgi.so
...

<VirtualHost *:80>
    ServerName                  www.example.com
    DocumentRoot                /www/example/htdocs
    WSGIScriptAliasMatch ^/$    /www/example/application.py
    WSGIScriptAlias      /wsgi  /www/example/application.py
</VirtualHost>

원하는 경우 WSGIProcessGroup 지시문을 사용하여 서로 다른 가상 호스트에 대한 핸들러를 분리할 수 있습니다.가상 호스트의 스크립트를 다른 사용자로 실행해야 하는 경우 내장된 Python 인터프리터 대신 WSGIDaemonProcess를 사용해야 합니다.

application.py는 실행 시 전역 'application' 변수에 WSGI 호출 가능 상태를 유지합니다.구식 CGI와의 호환성을 위해 기본으로 실행 바닥글을 추가할 수도 있습니다.

#!/usr/bin/env python
from mymodule import MyApplication

application= MyApplication()

if __name__=='main':
    import wsgiref.handlers
    wsgiref.handlers.CGIHandler().run(application)

다른 팁

웹 서버에는 nginx를 추천합니다. 빠르고 쉽게 설정합니다.

Vhost 당 UNIX 사용자 하나를 원할 것입니다. 따라서 모든 홈 디렉토리에는 자체 응용 프로그램, Python 환경 및 서버 구성이 보관됩니다. 이를 통해 Vhost가 소유 한 작업자 프로세스를 죽임으로써 특정 앱을 안전하게 다시 시작할 수 있습니다.

팁만으로도 도움이되기를 바랍니다.

Apache와 사용할 수 있습니다 mod_wsgi. 이렇게하면 여전히 Apache의 Vhosts에 대한 내장 지원을 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top