Попытка настроить Nginx как балансировку нагрузки для серверов https. Верхний канал обслуживает порт 443 с настроенными сертификатами SSL. Как настроить Nginx, чтобы конфигурация сертификата SSL обрабатывалась только на восходящих серверах, а не на сервере Nginx?
Баланс нагрузки Nginx с восходящим SSL
Ответ 1
Вам необходимо использовать модуль Upstream и модуль Reverse Proxy. Чтобы отменить прокси-сервер для https-upstream, используйте это
proxy_pass https://backend;
где бэкэнд - это блок uptream.
Однако, если бы я это делал, я бы прекратил работу ssl на сервере nginx и сделал бы серверы приложений upstream делать то, что им нравится: обслуживать контент, а не беспокоиться о чрезмерных нагрузках на шифрование/дешифрование ssl. Настройка ssl-завершения на nginx также очень проста с использованием модуля SSL. Очень хорошее тематическое исследование также приводится здесь.
Ответ 2
теперь возможно в соответствии с https://www.nginx.com/resources/admin-guide/nginx-tcp-ssl-upstreams/ (1.9.4 +)
Ответ 3
Насколько я понял из чтение соответствующей дискуссии на форуме Nginx, это невозможно, потому что Nginx все равно должен прекратить восходящее SSL-соединение. Если вы настаиваете на использовании Nginx, вам остается только выполнить репликацию конфигурации SSL и сделать сертификаты и ключ доступными для Nginx.
В обсуждении, которое я сделал, сделан вывод о том, что HAProxy - намного лучший инструмент для пересылки SSL вверх. Здесь соответствующее сообщение Я нашел о настройке HAProxy для этой цели. Поскольку у меня есть нулевой опыт HAProxy, я не могу суммировать его конфигурацию или общую жизнеспособность решения, оставляя его читателю.
Update
Так как 1.9.2 Nginx поддерживает протокол прокси-протокола HAProxy .