私の現在の状況は、dockerを実行するUbuntuサーバーがあることです。そのドッカーでNGINXをリバースプロキシとして実行します。これはportainerに対してうまく機能しますが、同じ構成(別のIPを使用するofc)で2番目のサブドメインを追加しようとすると、次のエラーが発生します。また、ブラウザで502エラーが発生します。
2022/06/13 12:33:29 [エラー] 22#22: *5 SSL_do_handshake() 失敗 (SSL: エラー: 1408F10B: SSL ルーチン: ssl3_get_record: 無効なバージョン番号)、アップストリームとの SSL ハンドシェイク、クライアント: 1 。 94.85, サーバー: prometheus.x.net, 要求: "GET /favicon.ico HTTP/1.1", アップストリーム: "https://172.20.0.110:9090/favicon.ico", ホスト: "prometheus.x.net" 、リファラー: "https://prometheus.x.net/"
Cloudflare を使用してソースとエッジの SSL 証明書を管理します。
これは動作しないページの設定です。動作している他のサブドメインとまったく同じで、IPだけが異なります。 IPとポートを3回確認しましたが、正常に動作します。
upstream prometheus {
server prometheus:9090;
}
server {
listen 80;
listen [::]:80;
server_name prometheus.x.net;
return 302 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
ssl_client_certificate /etc/ssl/cloudflare.crt;
ssl_verify_client on;
server_name prometheus.x.net;
location / {
# Allow websockets
proxy_http_version 1.1;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
# Default headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://prometheus;
}
}
この問題をどのように解決できますか?
編集:conf.dフォルダの各サブドメインに.confファイルを使用します。これが重要かどうかはわかりません。
答え1
投稿して1分で分かりましたね。問題を解決するのに1分かかります。
Portainerとは異なり、アプリケーションにはHTTPSが組み込まれていないため、現在の構成ではNGINXはHTTPのみをサポートしますが、HTTPSを使用してローカルにアプリケーションにアクセスしようとします。
proxy_pass https://prometheus;
しなければならない
proxy_pass http://prometheus;