Apache 别名

Apache 别名

我目前在我的 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>

相关内容