c33*_*33s 4 nginx reverse-proxy
os: debian stable (squeeze) nginx:squeeze-backports 1.2.1-2~bpo60+1
try_files 对我来说很奇怪。
这按预期工作,如果未找到 $uri,则在本地尝试 -> 使用 @static 位置
try_files $uri $uri/ @static;
Run Code Online (Sandbox Code Playgroud)
仅在末尾添加 =404 会导致 404。如果我访问位于 $uri 或 @static 的现有文件,它是否仍然有效,并且仅在 @static 位置上找不到任何内容时才提供 404?
try_files $uri $uri/ @static =404;
Run Code Online (Sandbox Code Playgroud)
将 =404 放在 @static 之前使其再次工作。为什么?如果文件不在 $uri 或 $uri/ 位置,而是在 @static 上,它应该导致 404 因为 =404 是在 @static 之前(根据我的理解)。如果我访问一个位于 $uri 的文件,它会从 nginx 正确提供(不访问 @static 后端或 =404)
try_files $uri $uri/ =404 @static ;
Run Code Online (Sandbox Code Playgroud)
我很困惑
编辑:我的目标是:测试文件是否在本地,然后检查该文件的所有上游服务器,如果在这些位置找不到,则返回 404
配置:
upstream domain.com_upstream
{
server yyy.yyy.yyy.yyy:8000 weight=10 max_fails=3 fail_timeout=3s;
server zzz.zzz.zzz.zzz:8020 weight=10 max_fails=3 fail_timeout=3s;
}
server
{
server_name www.domain.com;
listen xxx.xxx.xxx.xxx:80;
location @static
{
proxy_ignore_client_abort off;
proxy_intercept_errors on;
proxy_next_upstream http_404 error timeout invalid_header;
proxy_pass http://domain.com_upstream;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 10;
proxy_send_timeout 120;
proxy_read_timeout 120;
proxy_buffers 8 16k;
proxy_buffer_size 32k;
}
location ~ ^/test
{
root /var/www/test;
try_files $uri @static =404; # exchange with upper try_file examples...
}
*** snip ***
}
Run Code Online (Sandbox Code Playgroud)
你误解了try_files
参数。来自文档的引用:
如果没有找到任何文件,则会进行到最后一个参数指定的 uri 的内部重定向。
只有最后一个参数是回退 URI(或命名位置或代码),所有其他参数都是要测试的文件。IE
try_files /file1 /file2 /file3 ... @fallback;
Run Code Online (Sandbox Code Playgroud)
将检查文档根目录下的文件(/file1、/file2、/file3 等),如果没有找到,nginx 将进行内部重定向到 @fallback。
这try_files ... @static =404;
实际上没有意义,因为它将测试@static
在文档根目录下命名的文件,而且很可能它不是您想要的。将try_files ... =404 @static;
没有任何意义,也因为它会测试一个名为文件=404
。
有关文档,请参见此处:http : //nginx.org/r/try_files。
归档时间: |
|
查看次数: |
5416 次 |
最近记录: |