gpt4 book ai didi

nginx - nginx 中的 proxy_pass 到 EC2 实例的私有(private) IP

转载 作者:行者123 更新时间:2023-12-05 01:18:04 31 4
gpt4 key购买 nike

我有两个 Amazon EC2 实例。让我称它们为 X 和 Y。我在它们两个上都安装了 nginx。 Y 有 resque在端口 3000 上运行.只有 X 有一个公共(public) IP 和域 example.com。假设 Y 的私有(private) IP 是 15.0.0.10
我想要的是所有请求都到 X。并且只有当请求 url 匹配模式 /resque ,则应由 Y 在 localhost:3000/overview 处处理,这是 resque Web 界面。似乎这可以使用 nginx 配置中的 proxy_pass 来完成。

因此,在 nginx.conf 中,我添加了以下内容:

location /resque {
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
allow all;

proxy_pass http://15.0.0.10:3000/overview;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

但是现在,当我访问 http://example.com/resque在我的网络浏览器中,它显示 502 Bad Gateway .

/var/log/nginx/error.log在 X 上,
2014/02/27 10:27:16 [error] 12559#0: *2588 connect() failed (111: Connection 
refused) while connecting to upstream, client: 123.201.181.82, server: _,
request: "GET /resque HTTP/1.1", upstream: "http://15.0.0.10:3000/overview",
host: "example.com"

关于可能出现什么问题以及如何解决此问题的任何建议?

最佳答案

事实证明,如果需要通过寻址实例的 IP 来访问服务器,则该服务器应该在 0.0.0.0 上运行。

所以为了解决我的问题,我停止了在 127.0.0.1:3000 上运行 resque 的服务器并重新启动它以绑定(bind)到 0.0.0.0:3000。休息一切都和上面一样,它可以工作。谢谢。

供引用:Curl amazon EC2 instance

关于nginx - nginx 中的 proxy_pass 到 EC2 实例的私有(private) IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22067148/

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