В настоящее время у меня есть один сервер со стеком Django. У меня есть nginx с сертификатом SSL для HTTPS. Я хочу масштабировать веб-слой, поместив балансировщик нагрузки nginx вперед и добавив IP-адреса в конфигурацию модуля upstream, когда я раскручиваю новые капли, чтобы справиться с нагрузкой. Довольно просто настроить, но я не могу понять, как заставить его работать с включенным SSL. Я попробовал следующее:

  1. Включен SSL как в дроплете балансировщика нагрузки, так и в каждой из дроплетов веб-приложения. Это не работает, потому что сертификат SSL в каплях веб-приложения был создан с определенным доменным именем. Балансировщику нагрузки не удается подключиться к веб-приложению, поскольку он не может проверить сертификат SSL, поскольку использует IP-адрес, а не полное доменное имя, например, 1.2.3.4, а не web1.example.com.

  2. Затем я попытался включить SSL только на балансировщике нагрузки. Балансировщик нагрузки может связываться через HTTP с каплями веб-приложения, но тогда этот трафик не будет защищен в общедоступной сети.

Я в недоумении. Не могли бы вы дать совет, как действовать? Нужно ли настраивать частную сеть между балансировщиком нагрузки и каплями веб-приложения? Если так, то как? Существуют ли другие методы, использующие SSL-сертификаты или настройки конфигурации DNS?

Я использую Ubuntu 12.10 x64. Не на AWS, поэтому нет доступа к VPC или группам безопасности. Все виртуальные машины имеют общедоступный IP-адрес, поэтому необходимо сделать соединение между балансировщиком нагрузки и узлами веб-приложений максимально безопасным.

Любая помощь будет оценена!

1 ответ1

0

Из чтения по-прежнему открытого и активного отчета об ошибках в nginx http://trac.nginx.org/nginx/ticket/13 я бы предположил, что nginx не поддерживает то, что вам нужно, например, обеспечивает защиту бэкенда с помощью правильного SSL (например, с разумным проверка сертификата). В конце ошибки вы найдете ссылки на недавнее (08/2013) обсуждение, которое также включает патч.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .