Ситуация следующая:
На моей машине работают два сервера. Один из них является внешним сервером и является обратным прокси-сервером для второго, который прослушивает только localhost и предоставляет услуги.
Второй сервер должен переехать https
. Я знаю, что вижу два варианта:
https
на втором сервере, и пусть обратный прокси-сервер будет обслуживать пакет https.https
логика в обратном прокси и «абстрагировать https» для второго сервера.Я даже не знаю, возможны ли оба этих варианта, не говоря уже о жизнеспособности. Если да, то каковы преимущества и недостатки обоих решений?
РЕДАКТИРОВАТЬ: в этом сценарии обратным прокси является nginx, а предоставление услуг server - это сервер Node.js.
Я рекомендую ваш сценарий два. Хорошей практикой является наличие выделенного сервера для обработки ssl / tls.
Когда ваш дизайн программного обеспечения станет более широким, вам, возможно, потребуется балансировка нагрузки между двумя экземплярами NodeJS. В этом случае легче обеспечить липкость сеанса и тому подобное, когда обратный прокси-сервер может заглядывать внутрь передаваемых данных (что он может делать только тогда, когда он сам выполняет шифрование)
Если вы ожидаете, что ваш дизайн изменится и что обратный прокси-сервер и экземпляр NodeJS будут перемещены на отдельные серверы, вам следует планировать шифрование с самого начала, потому что в противном случае вы будете передавать незашифрованные данные по сети.
Поскольку мы оба находимся в Германии: я часто вижу программное обеспечение, написанное без поддержки шифрования, которое вызывает серьезные проблемы при использовании в среде, где немецкие службы безопасности требуют 100% -ного шифрования, даже если вы «только» передаете данные сеанса. Поэтому, в зависимости от ваших планов, вам следует дважды подумать, что вы оцените выше: простота или безопасность.
Использование https в прокси-сервере имеет еще одно преимущество: вы можете позже перемещать части сайта на другие серверы, сохраняя при этом один домен, ориентированный на пользователя, и один сертификат.