Nginx proxy_next_upstream 不起作用

标签 nginx

我希望 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 没有切换到服务器。

对此的任何帮助将不胜感激。

最佳答案

proxy_next_upstream指令是一个配置指令,用于控制来自一组 upstream servers 的重新请求来自 proxy_pass如果对其中之一的请求失败。没有 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://...
}

http://nginx.org/r/try_files有关 try_files 的更多信息指示。

关于Nginx proxy_next_upstream 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868683/

相关文章:

nginx - 流式网络摄像头实时缓冲区 [东芝网络摄像头] [视频输入] 太满或接近太满

apache - .htaccess 不会转义 RewriteRule 上的问号

nginx - 异常 : bus. 总线不可用 - Odoo 10

nginx - 将虚拟主机分配给 Docker 端口

python - Flask-Gunicorn-Nginx 设置在幕后是如何工作的?

node.js - Windows 7 上的 Nginx 并检测 Node.js

tomcat - Nginx反向代理配置问题

NGINX:限制与上游服务器的连接数

nginx - nginx 的 http_sub_module/sub_filter 和反向代理不起作用

mongodb - 在 centos 6.5 + nginx 上安装 mongodb