Назад | Перейти на главную страницу

Альтернатива Nginx слушает

У меня есть несколько серверов Nginx, которые совместно используют свою конфигурацию, потому что они находятся в пуле балансировщика нагрузки.

Таким образом, у меня есть уникальная конфигурация для всех серверов, и все серверы прослушивают адреса *: 80 и *: 443.

Но это вызывает у меня некоторые проблемы с сертификатами SSL на клиентах, которые не поддерживают SNI (например, Windows XP).

Чтобы решить эту проблему, я должен указать разные IP-адреса для каждого веб-сайта SSL, но, конечно, он отличается от каждого сервера в пуле.

Есть ли у вас какие-нибудь советы?

Могу ли я указать несколько IP-адресов на одном сервере, не вызывая ошибки, если Nginx не может выполнить привязку к одному из них?

Большое спасибо!

Могу ли я указать несколько IP-адресов на одном сервере, не вызывая ошибки, если Nginx не может выполнить привязку к одному из них?

Не уверен, какая ОС у вас работает, потому что вы этого не указали, но если это какой-то вкус Linux: разрешите процессам связывать / прослушивать / на «нелокальных» IP-адресах. Для этого:

echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind

Если вы не хотите, чтобы это было постоянным, то есть «при перезагрузках», вы должны поместить его «где-нибудь». Для дистрибутивов на основе Debian это будет, например, /etc/sysctl.conf: Внутри поставить строчку чтения

net.ipv4.ip_nonlocal_bind = 1

и выполнить sysctl -p или сделай перезагрузку.

Это тот случай, когда вы можете предпочесть централизованное завершение SSL. Вместо того, чтобы иметь nginx экземпляры вообще беспокоятся о SSL, просто попросите их выполнить http и централизовать завершение SSL на haproxy box или резервные балансировщики нагрузки, такие как A10 или Netscaler. Затем ваш прокси / LB перенаправит соединение на nginx коробки. Эта статья объясняет, как заставить SSL работать на haproxy.