Ave*_*ith 7 reverse-proxy nginx
我在确定 Nginx 上的负载平衡时遇到了麻烦。我正在使用: - Ubuntu 16.04 和 - Nginx 1.10.0。
简而言之,当我将我的 ip 地址直接传递给“proxy_pass”时,代理工作:
server {
location / {
proxy_pass http://01.02.03.04;
}
}
Run Code Online (Sandbox Code Playgroud)
当我访问我的代理计算机时,我可以看到来自代理 ip 的内容......但是当我使用上游指令时,它不会:
upstream backend {
server 01.02.03.04;
}
server {
location / {
proxy_pass http://backend;
}
}
Run Code Online (Sandbox Code Playgroud)
当我访问我的代理计算机时,我看到的是默认的 Nginx 服务器页面,而不是来自上游 IP 地址的内容。
任何进一步的帮助将不胜感激。我做了大量的研究,但无法弄清楚为什么“上游”不起作用。我没有收到任何错误。它只是不代理。
好吧,看来我找到了答案......
关于后端服务器的两件事,至少对于使用 IP 地址时的上述场景而言:
后端服务器块应配置如下:
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
...
}
Run Code Online (Sandbox Code Playgroud)
并且您的反向代理服务器块应配置如下:
upstream backend {
server 01.02.03.04:8080;
}
server {
location / {
proxy_pass http://backend;
}
}
Run Code Online (Sandbox Code Playgroud)
看起来好像后端服务器正在侦听 :80,反向代理服务器不会呈现其内容。我想这是有道理的,因为服务器实际上为公众使用默认端口 80。
感谢@karliwson 促使我重新考虑该端口。
| 归档时间: |
|
| 查看次数: |
13075 次 |
| 最近记录: |