2017-09-21 2 views
0

J'ai un cluster mesos qui fonctionne dans un test d'environnement et j'ai configuré nginx + nixy pour la découverte de service. Il fonctionne très bien, mais quand nginx faire un proxy_pass pour docker conteneur, je reçois un 404 error.NGINX: microservices proxy_pass

ex: J'ai un conteneur Tomcat écouter privateip:37130, si je configure proxy_pass pour l'emplacement /, il travaille! Si je configure pour l'emplacement /service, j'obtiens le code 404 error.

Quelqu'un a une idée?

Mon nginx.conf

worker_processes auto; 
pid /run/nginx.pid; 

events { 
    use epoll; 
    worker_connections 2048; 
    multi_accept on; 
} 
http { 
    add_header X-Proxy always; 
    access_log off; 
    error_log /var/log/nginx/error.log warn; 
    server_tokens off; 
    client_max_body_size 128m; 
    proxy_buffer_size 128k; 
    proxy_buffers 4 256k; 
    proxy_busy_buffers_size 256k; 
    proxy_redirect off; 
    map $http_upgrade $connection_upgrade { 
     default upgrade; 
     '' close; 
    } 
    # time out settings 
    proxy_send_timeout 120; 
    proxy_read_timeout 120; 
    send_timeout 120; 
    keepalive_timeout 10; 
    upstream tomcat { 
     server 172.30.119.214:31816; 
    } 

    server { 
     listen 80; 
     server_name app.org; 

     location/{ 
      return 503; 
     } 
     location /tomcat/ { 
      proxy_set_header HOST $host; 
      proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; 
      proxy_connect_timeout 30; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection $connection_upgrade; 
      proxy_pass http://tomcat; 
     } 
    } 
} 

Répondre

1

Modifier ci-dessous

proxy_pass http://tomcat; 

à

proxy_pass http://tomcat/; 

Ajout du / arrière veilleraient à ce que le /tomcat/ de l'emplacement ne sera pas envoyé au tomcat service

+0

Ça marche, merci beaucoup Tarun. – mzibit

+0

Très bien, acceptez-le comme la réponse en cliquant sur le bouton cocher près des upvotes –