2017-11-22 16 views
0

2つのコンテナを実行しているドッキングスタックがあります。最初はNginx、2番目のアプリケーションです。Nginx:502ドッカースタック内の不正なゲートウェイ

問題はそのnginxのは、不正なゲートウェイのエラーを示しています。ここでは

はnginxのconfにある:ここでは

upstream example { 
    server mystack_app1; 
    # Also tried with just 'app1' 
    # server mystack_app2; 

    keepalive 32; 
} 

server { 
    listen 80; 
    server_name example; 

    location/{ 
       proxy_pass http://example; 
       proxy_set_header Host $host; 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_connect_timeout 150; 
       proxy_send_timeout 100; 
       proxy_read_timeout 100; 
       proxy_buffers 4 32k; 
       client_max_body_size 8m; 
       client_body_buffer_size 128k; 
     } 
} 

は、ドッキングウィンドウ-compose.yml

version: "3" 
services: 

    app1: 
    image: my-app:latest  
    ports: 
     - "9000:9000" 
    networks: 
     - webnet 

    web: 
    image: my-web:latest  
    ports: 
     - "81:80" 
    networks: 
     - webnet 
    deploy:  
     restart_policy: 
     condition: on-failure   

networks: 
    webnet: 

私はデプロイするには、次のコマンドを使用していますドッカースタック:

docker stack deploy -c docker-compose.yml mystack 

localhost:9000でホストのブラウザからアプリケーションにアクセスできます。正常に動作します。

また、nginxのコンテナから、私はmystack_app1にpingできます。

しかし、ローカルホストにアクセスするとき:81、nginxのショー502不正なゲートウェイ

を助けてください。

答えて

1

上流の定義が正しくないようです。ところで、私はあなたがあなたのドッキングウィンドウ・コンファイルでCONTAINER_NAMEを使用することをお勧め

upstream example { 
    server mystack_app1:9000; 
    # Also tried with just 'app1' 
    # server mystack_app2; 

    keepalive 32; 
} 

を試してみてください代わりに、ポート9000

のポート80に接続しようとしています。

+0

私は以前にポートで試してみましたが、うまくいかなかったのですが、他の設定が間違っていると思われます。今、働く、ありがとう! – Teimuraz

関連する問題