我遵循格雷厄姆的简单configuration说明,以便在域根上挂载一个wsgi应用程序。 而事实上,我的网站正在工作。
但是,对静态页面的请求正在处理两次 。 Apache响应静态内容,但wsgi应用程序也收到请求。 例如,“myApp.domain.com/static/test.js”的浏览器请求会在浏览器中显示test.js文件内容,但wsgi应用程序也会以“static / test.js”作为path调用。
相关的Apacheconfiguration:
LoadModule wsgi_module modules/mod_wsgi.so WSGISocketPrefix /var/run/wsgi <VirtualHost *:80> DocumentRoot /var/www/myApp ServerName myApp.domain.com Alias /static/ /var/www/myApp/static/ <Directory /var/www/myApp/static> Order deny,allow Allow from all </Directory> WSGIScriptAlias / /var/www/myApp/app.wsgi <Directory /var/www/myApp> Order allow,deny Allow from all </Directory> WSGIDaemonProcess myAppName processes=1 WSGIProcessGroup myAppName </VirtualHost>
我需要在我的apacheconfiguration中更改以防止将myApp.domain.com/static/中的请求传递给wsgi应用程序? 希望我只是有一个错字…
编辑:不能再重现这种行为。
出于安全原因,您不应该设置:
DocumentRoot /var/www/myApp
或者更具体地说,您不应该将DocumentRoot设置为应用程序源代码所在的父目录。 这是很危险的,因为如果你不小心注释掉了WSGIScriptAlias,你的源代码将是可下载的。 将DocumentRoot保留为默认值,或将其指向空目录。
至于你的问题,你有什么证据显示你的应用程序正在被静态文件的URL命中?