我正在尝试从面向外部的 nginx 服务器重定向到也运行 nginx 的单独内部服务器。内部机器将用于特定用途,因此我需要所有请求http://我的域名/内部代理到这台机器。我已经设置了 proxy_pass 来处理这个问题,但响应没有返回到客户端(除非我在 LAN 内部测试)。我认为这是因为内部机器有一个不可路由的互联网 IP,所以我需要让它通过外部机器传回——我该怎么做?
我想避免给这台机器一个公共 IP。我一直在谷歌搜索并尝试各种 nginx.conf 选项(这就是我犹豫是否立即发布它们的原因),但还没有成功。
答案1
使用 proxy_pass。
- 从面向外部的 nginx 进行测试:telnet IP_INTERNAL_NGINX 80... 或其他端口(如果你使用)
- 读取外部和内部 nginx 的日志
答案2
您确定内部设备已正确设置其路由表吗?
答案3
我已经让它工作了——它只是修改了内部机器上的 server_name。我将其设置为公开的域,它按预期工作。