В этой статье мы будем работать над тем, как перенаправить веб-трафик с HTTP на безопасный HTTPS в Nginx.
Ответы и запросы возвращаются в виде открытого текста в HTTP, тогда как HTTPS использует SSL / TLS для шифрования связи между клиентской и серверной системой. Поэтому по многим причинам HTTPS используется поверх HTTP, которые перечислены ниже:
- Все данные между клиент-сервером в обоих направлениях зашифрованы. Однако никто не может получить доступ к конфиденциальной информации в случае перехвата.
- Когда вы используете HTTPS, Google Chrome и другие браузеры будут считать домен вашего веб-сайта безопасным.
- Версия HTTPS улучшает производительность указанного вами веб-сайта с использованием протокола HTTP / 2.
- Если вы обслуживаете домен своего веб-сайта через HTTPS, тогда веб-сайт будет лучше ранжироваться в Google, поскольку он поддерживает все веб-сайты, защищенные HTTPS.
Перенаправлять трафик HTTP на HTTPS в Nginx желательно в отдельном серверном блоке для каждой версии сайта. Также рекомендуется избегать перенаправления трафика с использованием направления «если», что может вызвать необычное поведение сервера.
Перенаправить весь трафик с HTTP на HTTPS
Добавьте следующие изменения в файл конфигурации Nginx, чтобы перенаправить весь трафик с версии HTTP на версию HTTPS:
serverслушаем 80 default_server;
имя сервера _;
return 301 https: // $ host $ request_uri;
Ниже мы подробно остановились на каждом из вышеупомянутых терминов:
Listen 80 default_server - это сигнализирует вашей системе, что весь HTTP-трафик перехватывается через порт 80.
Server_name _ - это домен, который будет соответствовать любому имени хоста.
Вернуть 301 https: // $ host $ request_uri - это сообщает вашим поисковым системам, что перенаправляют его навсегда. Он указывает, что переменная $ host содержит имена доменов.
После изменения параметров конфигурации вам необходимо перезагрузить службы Nginx в вашей системе. Итак, перезагрузите службы Nginx, используя следующую команду:
$ sudo 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, а затем внесите в этот файл следующие изменения:
serverслушать 80;
имя_сервера имя-домена.com www.доменное имя.com;
вернуть 301 https: // имя-домена.com $ request_uri;
Давайте разберемся в приведенном выше коде построчно.
Listen 80 - используя порт 80, сервер будет прослушивать все входящие соединения указанного домена.
Имя_сервера имя-домена.com www.доменное имя.com - указывает доменные имена. Итак, замените его на доменное имя вашего веб-сайта, которое вы хотите перенаправить.
Вернуть 301 https: // имя-домена.com $ request_uri - перемещает трафик на HTTPS-версию сайта. Переменная $ request_uri используется для полного исходного URI запроса, в который также включены аргументы.
Используя следующий метод, вы можете перенаправить трафик с HTTPS-версии www на версию сайта без www. Рекомендуется создать редирект в отдельном серверном блоке как для версий без www, так и для версий с www.
Поясним на примере. Если вы хотите перенаправить запросы HTTPS с www на версию без www, вы должны выполнить следующую конфигурацию:
serverслушать 80;
имя_сервера имя-домена.com www.доменное имя.com;
вернуть 301 https: // имя-домена.com $ request_uri;
server
прослушать 443 ssl http2;
имя_сервера www.доменное имя.com;
#… Другой код
вернуть 301 https: // имя-домена.com $ request_uri;
server
прослушать 443 ssl http2;
имя_сервера имя-домена.com;
#… Другой код
Замените доменное имя своим доменом, например www.linuxhint.ком.
Заключение
Мы обсудили, как перенаправить трафик с HTTP-версии на HTTPS на сервере Nginx. Изменив параметр файла конфигурации Nginx, вы можете легко перенаправить трафик на HTTPS либо для указанного домена, либо перенаправить все. Этот метод, о котором мы упоминали в этой статье, может помочь вам сделать ваш сайт более безопасным, внеся какие-либо изменения в пользовательский интерфейс.