У меня есть несколько серверов 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.