2016-04-14 98 views
2

landing.example.com:10000有我可以正常工作的网络服务器,这是一个Docker容器,公开端口10000。其IP是172.17.0.2如何调试当nginx给502坏的网关?

我想要的是在端口80上有一个nginx反向代理,并根据访问的URL将访问者发送到不同的Docker容器。

server { 
    listen 80; 
    server_name landing.example.com; 

    location/{ 
     proxy_pass http://172.17.0.2:10000/; 
    } 

    access_log /landing-access.log; 
    error_log /landing-error.log info; 
} 

当我这样做,我得到502 Bad Gateway和日志说

2016/04/14 16:58:16 [error] 413#413: *84 connect() 
failed (111: Connection refused) while connecting to upstream, client: 
xxx.xxx.xxx.xxx, server: landing.example.com, request: "GET/HTTP/1.1", 
upstream: "http://172.17.0.2:10000/", host: "landing.example.com" 

回答

2

试试这个:

upstream my_server { 
    server 172.17.0.2:10000; 
} 

server { 
    listen 80; 
    server_name landing.example.com; 
    location/{ 
     proxy_pass     http://my_server; 
     proxy_set_header   Host $host; 
     proxy_set_header   X-Real-IP $remote_addr; 
     proxy_http_version   1.1; 
     proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header   X-Forwarded-Proto http; 
     proxy_redirect    http:// $scheme://; 
    } 
} 

在这里定义的上游服务器(服务器通过IP或主机名) ,并确保转发标题,以便服务器应答知道谁应答。

相关问题