My Flask 기반 웹 응용 프로그램을 사용할 준비가되었습니다. 현재 Apache 2.2에 연결 중입니다.WSGI 앱 (Flask + Apache)에 http 요청 라우팅
제가 아파치가 예상대로
WSGIScriptAlias//var/www/path/to/script.wsgi
모든 작품 루트에서 응용 프로그램을 제공 시작합니다. 그러나 나는 독특한 별명 각각의 서비스를 제공 할 필요가 의미 다른 데이터베이스에 연결됩니다 WSGI 스크립트의 여러 버전을 제공 할 :
: 나는 이들 중 하나에 액세스하려고WSGIScriptAlias /firstscript /var/www/path/to/first/script.wsgi
...
WSGIScriptAlias /secondscript /var/www/path/to/second/script.wsgi
www.example.com/firstscript
WSGI 앱이로드되지만 모든 http 요청은 여전히 루트로 라우팅됩니다. 내 WSGI 응용 프로그램에 대한 모든 HTTP 요청을 다시 라우팅하는 가장 좋은 방법은 무엇입니까? 여기 내 아파치 설정입니다 :
WSGIPythonHome /usr
WSGIPythonPath /var/www/path/to/first
<VirtualHost *>
WSGIDaemonProcess firstscript user=apache group=apache threads=5 python-path=/lib/python2.7/site-packages
WSGIScriptAlias /firstscript /var/www/path/to/first/script.wsgi
<Directory /var/www/path/to/first>
WSGIProcessGroup %{GLOBAL}
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
편집 :
나는 내 아파치 CONFIGS을 정리 도움이 @grahamdumpleton에서 (많은 감사) 권고를 따랐습니다,하지만 내 HTTP 요청은 계속 WSGI 응용 프로그램이 아닌 Apache 서버의 루트로 라우트되어야합니다. 나는 또한 디렉토리 태그에서 프로세스 그룹을 추가하려고했습니다
WSGIPythonHome /usr
WSGIPythonPath /var/www/path/to/first
<VirtualHost *>
WSGIDaemonProcess firstscript threads=5
WSGIScriptAlias /firstscript /var/www/path/to/first/script.wsgi process-group=firstscript application-group=%{GLOBAL}
<Directory /var/www/path/to/first>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
: WSGIProcessGroup firstscript
, 또한 어떤 영향을 미칠 실패 여기 내 현재 설정입니다.
감사합니다! 권장 변경 사항을 적용했지만 내 http 요청은 WSGI 응용 프로그램 대신 웹 서버의 루트로 계속 라우팅됩니다. 새 구성을 볼 수 있도록 내 질문을 편집했습니다! 더 이상 제안 사항이 있습니까? – dslosky
호스트 이름에''ServerName'' 지시자를 추가하지 않았기 때문에 가장 좋습니다. 이전의''VirtualHost''가있는 경우 호스트 이름을 기준으로 일치 할 수없는 경우이를 대체로 사용합니다. 또한 시스템 파이썬을 사용할 때''WSGIPythonHome'' 지시어가 필요 없습니다. 그리고 일반적으로''* ''뿐만 아니라''VirtualHost''에''* : 80''을 사용합니다. –