リクエストのルーティング先となる着信サーバー名を決定するマスターnginxサーバーがあります。 2つのセカンダリサーバーの場合、このマスターnginxサーバーはSSL証明書とキーも保持しています。 3番目のサーバーは、頻繁に更新プロセスが行われるため、独自の証明書とキーを保持しています。
私の質問は、マスターnginxサーバーを構成して、このサーバーに着信するすべての要求をサーバー3に転送する方法です。証明書とキーは頻繁に変更されるため、サーバー3からマスターサーバーにコピーできません。
Httpトラフィックの代わりにtcpトラフィックをプロキシしてみてください
stream {
server {
listen SRC_IP:SRC_PORT;
proxy_pass DST_IP:DST_PORT;
}
}
詳細については、nginxのドキュメントを参照してください https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/
動作する可能性のある構成は次のとおりです。マスターを介してプロキシし、すべてをServer3に転送します。 sslポートを使用しますが、sslをオフにします。
server {
listen 443;
server_name myserver.mydomain.whatever;
ssl off;
access_log /var/log/nginx/myserver.access.log;
error_log /var/log/nginx/myserver.error.og;
keepalive_timeout 60;
location / {
set $fixed_destination $http_destination;
if ( $http_destination ~* ^https(.*)$ )
{
set $fixed_destination http$1;
}
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-Proto $scheme;
proxy_set_header Destination $fixed_destination;
# Fix the “It appears that your reverse proxy set up is broken" error.
# might need to explicity set https://localip:port
proxy_pass $fixed_destination;
# force timeout if backend died.
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_read_timeout 90;
proxy_redirect http:// https://;
}
}