У меня есть следующая конфигурация Nginx для балансировки нагрузки между разными узлами. Однако, когда я пытаюсь перенаправить трафик, я получаю 502 Неверный шлюз.
Прочитав журнал ошибок, я узнал, что проблема связана с тем, что мой балансировщик нагрузки Nginx пытается проверить действительность сертификата X509. НЕТ для различных узлов (backend1.example.com, backend2.example.com
), но для имени восходящего потока backend.example.com
(без номера), что приводит к ошибке, показанной ниже.
Как я могу указать nginx использовать имя хоста перенаправляемого узла вместо имени восходящего?
ЖУРНАЛ ОШИБОК:
SSL-сертификат восходящего потока не соответствует «backend.example.com», в то время как подтверждение SSL к восходящему потоку...
КОНФИГУРАЦИЯ:
вверх по течению backend.example.com {
наименьшее_соединение;
сервер backend1.example.com:443
сервер backend2.example.com:443
}
сервер {
слушать [::]:443 ssl ipv6only=on;
слушать 443 ssl;
имя_сервера пример.com;
место расположения / {
proxy_pass https://backend.example.com;
proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
proxy_ssl_session_reuse включено;
proxy_ssl_verify включен;
proxy_ssl_verify_depth 2;
proxy_set_header Хост $host;
}
ssl_certificate /etc/letsencrypt/.../fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/.../privkey.pem; # под управлением Certbot
включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}