nginx:无法设置基本代理(连接被拒绝)

nginx:无法设置基本代理(连接被拒绝)

我正在尝试设置将托管我的 Web 应用程序的服务器。对于每个应用程序,入口点都是一个 nginx 服务器,打包在 docker 容器中,其端口 80 转发到主机上的某个位置。服务器的端口 80 由 nginx 代理服务器监听,该服务器选择与Host请求标头相对应的应用程序。

下面是我的简单、完全静态应用程序的 nginx 配置:

server {
    listen 80;

    location / {
        root   /usr/share/nginx/html;
        index  index.html;
    }
}

应用程序的端口 80 绑定到主机的端口 8000。

以下是代理的配置:

server {
    listen 80;

    location / {
        root   /usr/share/nginx/html;
        index  index.html;
    }
}

server {
    listen 80;

    # not real DNS, just an example
    server_name static.myserver.net;

    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}

DNS记录myserver.netstatic.myserver.net服务器的IP绑定。

但是当我尝试连接到时static.myserver.net,出现错误 502 和如下代理日志条目:

2016/06/04 13:26:58 [error] 5#5: *2 connect() failed (111: Connection refused) while connecting to upstream, client: 100.100.100.100, server: static.myserver.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "static.myserver.net"

应用程序的 nginx 日志是空的。

myserver.net:8000但从Web 和127.0.0.1:8000主机都可以完全访问。那么问题出在哪里?

答案1

问题已经找到。配置似乎正确,但代理服务器也设置为 Docker 容器。因此,地址127.0.0.1指向 Docker 容器,而不是主机。proxy_pass http://real_host_ip:8000;工作正常。

相关内容