2016-04-14 92 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或主機名) ,並確保轉發標題,以便服務器應答知道誰應答。

相關問題