Nginx

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

Nginx перенаправляє HTTP на HTTPS
Nginx, що вимовляється як “Engine x”, - це безкоштовний високопродуктивний веб-сервер на базі Linux з відкритим вихідним кодом та зворотний проксі-сервер, який відповідає за управління та обробку навантаження найбільшого веб-трафіку в Інтернеті. Nginx - це потужний інструмент перенаправлення, який можна легко налаштувати у вашій системі для перенаправлення менш захищеного або незашифрованого веб-трафіку HTTP на зашифрований та захищений веб-сервер HTTPS. Якщо ви системний адміністратор або розробник, то ви регулярно використовуєте сервер Nginx.

У цій статті ми будемо працювати над тим, як перенаправити веб-трафік з HTTP на захищений HTTPS в Nginx.

Відповіді та запити повертаються у вигляді простого тексту в HTTP, тоді як HTTPS використовує SSL / TLS для шифрування зв'язку між клієнтом та серверною системою. Тому з багатьох причин HTTPS використовується над HTTP, які перелічені нижче:

Переважно перенаправляти 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 або для вказаного домену, або перенаправити всі. Цей метод, про який ми згадували в цій статті, може допомогти вам зробити ваш веб-сайт більш безпечним, внісши будь-які зміни у взаємодію з користувачем.

Підручник Тінь розкрадача гробниць для Linux
Shadow of the Tomb Raider - дванадцяте доповнення до серії Tomb Raider - франшизи екшн-пригодницької гри, створеної Eidos Montreal. Гру сприйняли як к...
Як збільшити FPS в Linux?
FPS означає Кадри в секунду. Завданням FPS є вимірювання частоти кадрів при відтворенні відео або ігрових виставах. Простими словами кількість безпере...
Найкращі лабораторні ігри Oculus App
Якщо ви є власником гарнітури Oculus, то вам потрібно дізнатися про бокове завантаження. Бокове завантаження - це процес встановлення негарнітного вмі...