13.07.2026
nginx reverse proxy https to http
Настройка nginx reverse proxy: как перенаправить HTTPS на HTTP
В современном мире безопасность данных — приоритет для любого сайта или сервиса. Иногда возникает необходимость настроить nginx в качестве обратного прокси, который принимает HTTPS-запросы и передает их на внутренний сервер по протоколу HTTP. В этой статье я расскажу, как правильно настроить nginx reverse proxy HTTPS to HTTP, чтобы обеспечить безопасность соединения с внешним миром и при этом не создавать дополнительных сложностей для внутренней инфраструктуры.
Почему может понадобиться nginx reverse proxy HTTPS to HTTP?
Часто встречается ситуация, когда внешний пользователь подключается к вашему сайту по защищенному протоколу HTTPS, а внутренний сервер работает только по HTTP. Это может быть связано с:
- Устаревшими приложениями или серверами, не поддерживающими HTTPS.
- Желанием разграничить уровень безопасности между внешним доступом и внутренней сетью.
- Использованием облачных решений, где внешний трафик шифрован, а внутри сети — нет.
Настройка nginx как reverse proxy позволяет безопасно принимать HTTPS-запросы и передавать их внутрь по HTTP без потери безопасности на внешнем уровне.
Как настроить nginx reverse proxy HTTPS to HTTP
Рассмотрим пример конфигурации nginx, который принимает HTTPS-запросы и перенаправляет их на внутренний сервер по протоколу HTTP.
server {
listen 443 ssl;
server_name example.ru;
ssl_certificate /etc/ssl/certs/example.ru.crt;
ssl_certificate_key /etc/ssl/private/example.ru.key;
# Настройка редиректа HTTPS на внутренний сервер по HTTP
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Объяснение ключевых моментов:
listen 443 ssl;— активирует SSL на стандартном порту 443.ssl_certificateиssl_certificate_key— указывают сертификаты для шифрования.proxy_pass http://127.0.0.1:8080;— перенаправляет трафик на внутренний сервер, работающий по HTTP.proxy_set_header— передает правильные заголовки, чтобы внутренний сервер знал, что запрос был из HTTPS.
Важные нюансы и рекомендации
-
Безопасность внутри сети
Внутренний сервер работает по HTTP, поэтому важно обеспечить его безопасность и ограничить доступ только из nginx-прокси. -
Обработка SSL
Если необходимо полностью закрыть внутренний сервер от внешних соединений, настройте файрвол или ACL. -
Передача протокола
ПараметрX-Forwarded-Protoпомогает внутренним приложениям определить, что запрос изначально был по HTTPS, что важно для правильной работы ссылок и редиректов. -
Использование HTTP/2
Если ваш nginx и клиент поддерживают HTTP/2, добавьтеhttp2в конфигурацию порта:listen 443 ssl http2;.
Итог
Настройка nginx как reverse proxy для HTTPS to HTTP — это надежное решение для обеспечения защищенного внешнего доступа к вашему сервису при наличии внутренних ограничений или требований. Правильная конфигурация позволяет сохранить безопасность данных и обеспечить бесперебойную работу приложений.
Если вы столкнулись с проблемами или хотите автоматизировать работу, не забудьте регулярно обновлять сертификаты и следить за логами nginx.