У цій статті ми будемо працювати над тим, як перенаправити веб-трафік з 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:
серверслухати 80 default_server;
ім'я_сервера _;
повернути 301 https: // $ host $ request_uri;
Нижче ми розробили кожен згаданий термін:
Слухати 80 default_server - це сигналізує про вашу систему, яка вловлює весь HTTP-трафік на порту 80.
Ім'я_сервера _ - це домен, який буде відповідати будь-якому імені хоста.
Повернути 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, а потім виконайте такі зміни у цьому файлі:
серверслухати 80;
ім'я_сервера домен-ім'я.com www.Доменне ім'я.com;
повернути 301 https: // ім'я домену.com $ request_uri;
Давайте розберемось у наведеному вище коді рядок за рядком.
Прослуховування 80 - використовуючи порт 80, сервер буде прослуховувати всі вхідні з'єднання зазначеного домену.
Ім'я_сервера домен-ім'я.com www.Доменне ім'я.com - вказує доменні імена. Отже, замініть його на доменне ім’я веб-сайту, яке ви хочете перенаправити.
Повернути 301 https: // ім'я домену.com $ request_uri - він переміщує трафік до HTTPS-версії сайту. Змінна $ request_uri використовується для повного URI вихідного запиту, до якого також включені аргументи.
За допомогою наступного методу ви можете перенаправити трафік на версію HTTPS www на версію веб-сайту, що не є www. Рекомендується створити переспрямування в окремому блоці сервера як для версій, що не є www, так і для www.
Пояснимо на прикладі. Якщо ви хочете перенаправити запити HTTPS www на версію, яка не є www, тоді слід виконати наступну конфігурацію:
серверслухати 80;
ім'я_сервера домен-ім'я.com www.Доменне ім'я.com;
повернути 301 https: // ім'я домену.com $ request_uri;
сервер
слухати 443 ssl http2;
ім'я_сервера www.Доменне ім'я.com;
# ... інший код
повернути 301 https: // ім'я домену.com $ request_uri;
сервер
слухати 443 ssl http2;
ім'я_сервера домен-ім'я.com;
# ... інший код
Замініть доменне ім'я на ваш домен, наприклад www.linuxhint.ком.
Висновок
Ми обговорили, як перенаправити трафік з версії HTTP на HTTPS на сервері Nginx. Змінивши налаштування файлу конфігурації Nginx, ви можете легко перенаправити трафік на HTTPS або для вказаного домену, або перенаправити всі. Цей метод, про який ми згадували в цій статті, може допомогти вам зробити ваш веб-сайт більш безпечним, внісши будь-які зміни у взаємодію з користувачем.