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: //$ домакин$ request_uri;
}

По-долу сме разработили всеки горепосочен термин:

Слушайте 80 default_server - това ще сигнализира на вашата система, че улавя целия HTTP трафик на порт 80.
Server_name _ - това е домейнът, който ще съвпада с всяко име на хост.



Върнете 301 https: // $ host $ request_uri - това казва на вашите търсачки, които го пренасочват за постоянно. Той посочва, че променливата $ host съдържа имената на домейни.

След като промените конфигурационните настройки, трябва да презаредите услугите на Nginx във вашата система. Така че, презаредете вашите Nginx услуги, като използвате следната команда:

$sudosystemctl презареди 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;
}

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

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

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

Използвайки следния метод, можете да пренасочите трафика към HTTPS www версията към не-www версията на сайта. Препоръчва се да се създаде пренасочване в отделен сървърен блок както за версии, различни от www, така и за www.

Нека обясним с пример. Ако искате да пренасочите www HTTPS заявките към версията, която не е 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 или за определен домейн, или да пренасочите всички. Този метод, който споменахме в тази статия, може да ви помогне да направите вашия уеб сайт по -защитен, като направите каквито и да било промени в потребителското изживяване.