2016-04-14 5 views
2

Auf landing.example.com:10000 habe ich einen Webserver, der gut funktioniert, das ist ein Docker-Container, der Port 10000 freilegt. Seine IP ist 172.17.0.2.Wie Debuggen, wenn Nginx 502 schlechtes Gateway gibt?

Was ich möchte ist ein Nginx Reverse-Proxy auf Port 80, und senden Sie den Besucher zu verschiedenen Docker-Containern abhängig von der URL, die sie besuchen.

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; 
} 

Wenn ich das tue, erhalte ich 502 Bad Gateway und das Protokoll sagt

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" 

Antwort

2

try this:

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://; 
    } 
} 

Hier definieren Sie den Upstream-Server (dem Server von IP oder Hostname) und stellen Sie sicher, dass auch die Header weitergeleitet werden, damit der Server antwortet, wer antwortet.