Frod

05.10.2026

nginx reverse proxy https to http

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

Настройка nginx reverse proxy: HTTPS на стороне клиента — HTTP на сервере

Если вы занимаетесь веб-разработкой или администрированием, то, скорее всего, сталкивались с задачей организации безопасного соединения. Часто возникает необходимость использовать HTTPS для защиты данных между пользователем и прокси-сервером nginx, одновременно перенаправляя трафик на внутренний сервер по протоколу HTTP. В этом случае поможет настройка nginx reverse proxy https to http.

В этой статье я расскажу, как правильно настроить nginx для реализации такого сценария, чтобы обеспечить безопасность соединения и сохранить производительность.

Почему важно использовать HTTPS для прокси?

Использование HTTPS между клиентом и nginx обеспечивает шифрование данных, защиту от перехвата и подделки. Внутри же локальной сети или при подключении к внутренним сервисам зачастую достаточно передавать трафик по HTTP, что снижает нагрузку на сервер и упрощает конфигурацию.

Основные моменты настройки nginx reverse proxy https to http

  1. Получение SSL-сертификата

Перед тем как настроить прокси, необходимо обеспечить nginx SSL-сертификатом. Это можно сделать с помощью Let's Encrypt или другого центра сертификации. В конфигурации указывается путь к SSL-сертификату и ключу:

server {
 listen 443 ssl;
 server_name yourdomain.ru;

 ssl_certificate /etc/letsencrypt/live/yourdomain.ru/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/yourdomain.ru/privkey.pem;

 # Остальная конфигурация
}
  1. Настройка проксирования с HTTPS на HTTP

Самое важное — правильно настроить проксирование запросов. В конфигурации nginx добавьте блок location, который будет перенаправлять трафик на внутренний сервер по протоколу HTTP:

server {
 listen 443 ssl;
 server_name yourdomain.ru;

 ssl_certificate /etc/letsencrypt/live/yourdomain.ru/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/yourdomain.ru/privkey.pem;

 location / {
 proxy_pass http://127.0.0.1:8080; # внутренний сервер по HTTP
 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;
 proxy_redirect off;
 }
}

Здесь proxy_pass указывает на внутренний сервер, который работает по HTTP. Важный момент — передача заголовка X-Forwarded-Proto, чтобы внутренние сервисы знали, что запрос был изначально по HTTPS.

  1. Обеспечение безопасности и корректности

Несмотря на использование HTTP внутри, важно правильно настроить заголовки и сертификаты, чтобы не возникло уязвимостей. Также рекомендуется включить редирект с HTTP на HTTPS, чтобы обеспечить безопасность всех соединений.

server {
 listen 80;
 server_name yourdomain.ru;

 return 301 https://$host$request_uri;
}

Итог

Настройка nginx reverse proxy https to http — это надежный способ обеспечить безопасное соединение между пользователем и сервером, одновременно снижая нагрузку на внутренние ресурсы. Важно правильно настроить SSL-сертификаты, заголовки и прокси, чтобы обеспечить максимальную безопасность и стабильность.

Если вам нужно более подробно разобраться в настройке или возникли сложности — обращайтесь к документации nginx или специалистам по инфосекьюрити. Надежная настройка — залог безопасного и быстрого сайта!