我希望nginx首先在我的本地主机上搜索该文件,在出现404错误时,它应该搜索服务器1.1.1.1。
我可以获取位于本地主机上的文件,但不能从服务器1.1.1.1获取。
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/access.log main;
location /products/ {
proxy_next_upstream http_404;
root /var/foo;
}
}
server {
listen 80;
server_name 1.1.1.1;
location /products/ {
#########
}
}我猜proxy_next_upstream不会切换到服务器。
在这方面的任何帮助都将不胜感激。
发布于 2012-10-14 08:36:02
proxy_next_upstream指令是一个配置指令,用于在对一组upstream servers之一请求失败时,控制proxy_pass从其中一组one重新请求。如果没有定义proxy_pass和upstream块,它就没有意义。如果您代理多个上游服务器,则可以使用它,如下所示:
upstream backends {
server 192.2.0.1;
server 192.2.0.2;
...
}
server {
...
location / {
proxy_pass http://backends;
proxy_next_upstream error timeout http_404;
}
}如果您希望nginx在磁盘上搜索文件,并且如果找不到它-代理请求到另一台服务器,则对其进行配置,例如使用try_files回退:
location / {
root /path/to/root;
try_files $uri @fallback;
}
location @fallback {
proxy_pass http://...
}有关try_files指令的更多信息,请参见http://nginx.org/r/try_files。
https://stackoverflow.com/questions/12868683
复制相似问题