Svyaz

13.07.2026

nginx reverse proxy https to http

Svyaz VPN — свобода без границ

Настройка 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.

Важные нюансы и рекомендации

  1. Безопасность внутри сети
    Внутренний сервер работает по HTTP, поэтому важно обеспечить его безопасность и ограничить доступ только из nginx-прокси.

  2. Обработка SSL
    Если необходимо полностью закрыть внутренний сервер от внешних соединений, настройте файрвол или ACL.

  3. Передача протокола
    Параметр X-Forwarded-Proto помогает внутренним приложениям определить, что запрос изначально был по HTTPS, что важно для правильной работы ссылок и редиректов.

  4. Использование HTTP/2
    Если ваш nginx и клиент поддерживают HTTP/2, добавьте http2 в конфигурацию порта: listen 443 ssl http2;.

Итог

Настройка nginx как reverse proxy для HTTPS to HTTP — это надежное решение для обеспечения защищенного внешнего доступа к вашему сервису при наличии внутренних ограничений или требований. Правильная конфигурация позволяет сохранить безопасность данных и обеспечить бесперебойную работу приложений.

Если вы столкнулись с проблемами или хотите автоматизировать работу, не забудьте регулярно обновлять сертификаты и следить за логами nginx.