我的 nginx 反向代理配置有两个具有不同expires
设置的位置:
location ~ ^/(admin|login|search) {
uwsgi_pass myproject;
include uwsgi_params;
expires -1;
uwsgi_cache off;
}
location / {
uwsgi_pass myproject;
include uwsgi_params;
expires 7d;
}
Cache-Control
和标头Expires
按预期设置。当我尝试使用这样的命名位置来简化此设置时 –
location @uwsgi {
uwsgi_pass myproject;
include uwsgi_params;
}
location ~ ^/(admin|login|search) {
expires -1;
uwsgi_cache off;
try_files $uri @uwsgi;
}
location / {
expires 7d;
try_files $uri @uwsgi;
}
– 任何响应均未添加标头。我认为这与 的重定向性质有关try_files
。有没有办法实现我原始配置的效果,如上所述,使用命名位置?
答案1
include uwsgi_params
无需让事情变得过于复杂。您可以通过移至服务器块来缩短第一个配置的一行:
include uwsgi_params;
location ~ ^/(admin|login|search) {
uwsgi_pass myproject;
expires -1;
uwsgi_cache off;
}
location / {
uwsgi_pass myproject;
expires 7d;
}
但请记住,如果您想uwsgi_param
在某些location
包含的指令中使用指令,则将被跳过,您必须像这样明确地包含它们:
...
location /custom/ {
uwsgi_pass myproject;
uwsgi_param my-custom-param 42;
include uwsgi_params;
}
因此,最后,也许include uwsgi_params
在所有location
s 中始终使用会更容易。