gpt4 book ai didi

Nginx 反向代理上游不起作用

转载 作者:行者123 更新时间:2023-12-02 03:09:50 28 4
gpt4 key购买 nike

我在确定 Nginx 上的负载平衡时遇到了麻烦。我正在使用:
- Ubuntu 16.04 和
- Nginx 1.10.0。

简而言之,当我将我的 ip 地址直接传递给“proxy_pass”时,代理工作:

server {
location / {
proxy_pass http://01.02.03.04;
}
}

当我访问我的代理电脑时,我可以看到来自代理ip的内容...
但是当我使用上游指令时,它不会:
upstream backend {
server 01.02.03.04;
}

server {
location / {
proxy_pass http://backend;
}
}

当我访问我的代理计算机时,我看到的是默认的 Nginx 服务器页面,而不是来自上游 IP 地址的内容。

任何进一步的帮助将不胜感激。我做了大量的研究,但无法弄清楚为什么“上游”不起作用。我没有收到任何错误。它只是不代理。

最佳答案

好吧,看来我找到了答案......

关于后端服务器的两件事,至少对于使用 IP 地址时的上述场景:

  • 必须指定端口
  • 端口不能是:80(根据@karliwsn,端口可以是 80,只是上游服务器无法监听与反向代理相同的端口。我还没有测试过,但值得注意的是)。

  • 后端服务器块应配置如下:
    server {

    # for your reverse_proxy, *do not* listen to port 80
    listen 8080;
    listen [::]:8080;

    server_name 01.02.03.04;

    # your other statements below
    ...
    }

    并且您的反向代理服务器块应配置如下:
    upstream backend {
    server 01.02.03.04:8080;
    }

    server {
    location / {
    proxy_pass http://backend;
    }
    }

    看起来好像后端服务器正在监听 :80,反向代理服务器不会呈现它的内容。我想这是有道理的,因为服务器实际上为公众使用默认端口 80。

    感谢 @karliwson 鼓励我重新考虑端口。

    关于Nginx 反向代理上游不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580617/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com