我目前在我的 apache 服务器上运行一个 python 项目,使用以下设置:
<VirtualHost *:80>
ServerName domain.tld
<Location />
SetHandler uwsgi-handler
uWSGISocket /run/uwsgi/app/site/socket
</Location>
</VirtualHost>
但是我有几个 URL 不想通过 uwsgi 处理程序。我尝试使用 Alias,但当我这样做时它似乎被 <Location /> 覆盖:
<VirtualHost *:80>
ServerName domain.tld
Alias /file.name /var/www/site/static/file.name
<Location />
SetHandler uwsgi-handler
uWSGISocket /run/uwsgi/app/site/socket
</Location>
</VirtualHost>
我尝试了很多变化(不同的位置/别名顺序、ProxyPass、重写)但每次 <Location /> 都优先。
答案1
您的问题归结为配置中各部分的合并优先顺序。Location
最后发生,ApacheLocation
指令匹配于命令因此你需要一些东西来取消设置 uwsgi 的某些部分,例如:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/wwww/site/static
<Location />
SetHandler uwsgi-handler
uWSGISocket /run/uwsgi/app/site/socket
</Location>
<Location /file.name>
SetHandler none
</Location>
</VirtualHost>