Nginx перенаправляет HTTP на HTTPS

Nginx Redirect Http Https



Nginx, произносится как Engine x, представляет собой бесплатный высокопроизводительный веб-сайт с открытым исходным кодом на базе Linux и обратный прокси-сервер, который отвечает за управление и обработку нагрузки крупнейшего трафика веб-сайтов в Интернете. Nginx - это мощный инструмент перенаправления, который можно легко настроить в вашей системе для перенаправления менее безопасного или незашифрованного веб-трафика HTTP на зашифрованный и защищенный веб-сервер HTTPS. Если вы системный администратор или разработчик, то вы регулярно используете сервер Nginx.

В этой статье мы будем работать над тем, как перенаправить веб-трафик с HTTP на безопасный HTTPS в Nginx.







Ответы и запросы возвращаются в форме открытого текста в HTTP, тогда как HTTPS использует SSL / TLS для шифрования связи между клиентской и серверной системой. Поэтому по многим причинам HTTPS используется поверх HTTP, которые перечислены ниже:



  • Все данные между клиент-сервером в обоих направлениях зашифрованы. Однако никто не может получить доступ к конфиденциальной информации в случае перехвата.
  • Когда вы используете HTTPS, Google Chrome и другие браузеры будут считать домен вашего веб-сайта безопасным.
  • Версия HTTPS улучшает производительность указанного вами веб-сайта с использованием протокола HTTP / 2.
  • Если вы обслуживаете домен своего веб-сайта через HTTPS, тогда этот веб-сайт будет иметь более высокий рейтинг в Google, поскольку он отдает предпочтение всем веб-сайтам, защищенным HTTPS.

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



Перенаправить весь трафик с HTTP на HTTPS

Добавьте следующие изменения в файл конфигурации Nginx, чтобы перенаправить весь трафик с версии HTTP на версию HTTPS:





сервер {
Слушать 80default_server;
название сервера _;
возвращение 301https: //$ host$ request_uri;
}

Ниже мы подробно остановились на каждом из вышеупомянутых терминов:

Listen 80 default_server - это сигнализирует вашей системе, что весь HTTP-трафик перехватывается через порт 80.
Server_name _ - это домен, который будет соответствовать любому имени хоста.



Вернуть 301 https: // $ host $ request_uri - это сообщает вашим поисковым системам, что перенаправляют его навсегда. Он указывает, что переменная $ host содержит имена доменов.

После изменения параметров конфигурации вам необходимо перезагрузить службы Nginx в вашей системе. Итак, перезагрузите службы Nginx, используя следующую команду:

$судоsystemctl перезагрузить nginx

Перенаправить HTTP на версию HTTPS для указанного домена в Nginx

После установки SSL-сертификата в вашем домене у вас будет два варианта блокировки сервера для этого домена. Один блок предназначен для версии HTTP, прослушивающей порт 80, а вторая версия - это HTTPS на порту 443. Однако, чтобы перенаправить отдельный домен веб-сайта с HTTP на HTTPS, вам необходимо открыть конфигурацию Nginx. Вы можете найти этот файл конфигурации в каталоге / etc / nginx / sites-available. В любом случае, если вы не нашли этот файл, вы можете найти его с помощью /etc/nginx/nginx.conf, / usr / local / nginx / conf или / usr / local / etc / nginx, а затем выполнить следующие изменения в этом файле:

сервер {
Слушать 80;
название сервера domain-name.com www.domain-name.com;
возвращение 301https://domain-name.com$ request_uri;
}

Давайте разберемся с приведенным выше кодом построчно.
Listen 80 - используя порт 80, сервер будет прослушивать все входящие соединения указанного домена.

Server_name domain-name.com www.domain-name.com - указывает имена доменов. Итак, замените его на доменное имя вашего веб-сайта, которое вы хотите перенаправить.

Возврат 301 https: //domain-name.com$request_uri - переводит трафик на HTTPS-версию сайта. Переменная $ request_uri используется для полного исходного URI запроса, в который также включены аргументы.

Используя следующий метод, вы можете перенаправить трафик с HTTPS-версии www на версию сайта без www. Рекомендуется создавать перенаправление в отдельном серверном блоке как для версий без www, так и для версий с www.

Поясним на примере. Если вы хотите перенаправить запросы HTTPS с www на версию без www, вы должны выполнить следующую конфигурацию:

сервер {
Слушать 80;
название сервера domain-name.com www.domain-name.com;
возвращение 301https://domain-name.com$ request_uri;
}
сервер {
Слушать 443 ssl http2;
название сервера www.domain-name.com;
#. . . другой код
возвращение 301https://domain-name.com$ request_uri;
}
сервер {
Слушать 443 ssl http2;
название сервера domain-name.com;

#. . . другой код
}

Замените доменное имя своим доменом, например www.linuxhint.com.

Заключение

Мы обсудили, как перенаправить трафик с HTTP-версии на HTTPS на сервере Nginx. Изменив параметр файла конфигурации Nginx, вы можете легко перенаправить трафик на HTTPS либо для указанного домена, либо перенаправить весь трафик. Этот метод, о котором мы упоминали в этой статье, может помочь вам сделать ваш веб-сайт более безопасным, внеся какие-либо изменения в пользовательский интерфейс.