2017-12-18 9 views
0

バックエンドサービス用のhttpsも提供するNginxを使用してリバースプロキシを設定しようとしています。Docker-compose + Nginx SSL逆プロキシ

私は3つのコンテナを持っています.1つはmongodb用、もう1つは.NETコアバックエンド用、もう1つはリバースプロキシ用です。

ドッカーのコンテナはうまくいくように見え、HTTPSを設定するまではうまくいきました。

https://localhost:8080からのリクエストがhttpポート上で実行されている.NETコアアプリケーションに正しく変換されないという問題があります。

問題は私のNginx confファイルにありますが、それを修正する方法がわかりません。私は、HTTPリクエストを行うと、それはERR_SSL_PROTOCOL_ERRORを返しますhttps://localhost:8080を使用した場合

worker_processes 1; 

events { worker_connections 1024; } 

http { 

    sendfile on; 

    upstream web { 
     server web:443; 
    } 

    server { 
     listen 8080; 

     location /upstream { 
      proxy_pass   https://web; 
      proxy_ssl_certificate  /etc/nginx/cert.pem; 
      proxy_ssl_certificate_key /etc/nginx/privkey.pem; 
      proxy_ssl_session_reuse on; 
      proxy_redirect  off; 
      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_set_header X-Forwarded-Host $server_name; 
     } 
    } 

    server { 
     listen 443 ssl; 

     ssl_certificate_key /etc/nginx/privkey.pem; 
     ssl_client_certificate /etc/nginx/cert.pem; 
     ssl_verify_client  off; 

     location/{ 
      proxy_pass http://web; 
     } 
    } 
} 

、病気に戻って502不正なゲートウェイのエラーを取得。ターミナルで

、nginxのコンテナ戻り

enter image description here

任意のアイデア?

+0

あなたは 'properly'に翻訳されていない何を意味するのですか?ああ - 'X-Forwarded-Proto'を追加しようとするかもしれないし、あなたのアプリケーションはそれを信頼する必要があるかもしれない。おそらく関連する:https://forums.iis.net/t/1178094.aspx?Rewriting+HTTPS+variable+based+ on + value + of + X + Forwarded + Proto – gusto2

+0

役立つなら、これを試してみてください:https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion – Evis

答えて

0

少し読んだら、ドキュメントを読んで解決策を見つけることができました。

worker_processes 1; 

events { worker_connections 1024; } 

http { 

    sendfile on; 

    upstream web { 
     server web:80; 
    } 

    server { 
     listen 8080 ssl; 

     ssl_certificate   /etc/nginx/cert.pem; 
     ssl_certificate_key  /etc/nginx/privkey.pem; 

     location/{ 
      proxy_pass   http://web; 
      proxy_redirect  off; 
      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_set_header X-Forwarded-Host $server_name; 
      proxy_set_header X-NginX-Proxy true; 
     } 
    } 
}