img

Как настроить редирект с HTTP на HTTPS в Nginx

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

Nginx redirect

Это руководство покажет вам, как перенаправить HTTP на HTTPS с помощью Nginx.


Что нам потребуется

  • Сервер Linux под управлением Nginx
  • Учетная запись пользователя с привилегиями sudo
  • Удаленный вход на веб-сервер (необязательно, требуется только в том случае, если вы не работаете непосредственно с веб-сервером)
  • Доступ к терминалу/командной строке (Ctrl-Alt-T или Ctrl-Alt-F2)

Редирект с HTTP на HTTPS

Для принудительного перенаправления HTTP на HTTPS вам необходимо отредактировать файл конфигурации Nginx.

В большинстве случаев вы можете найти этот файл в каталоге /etc/nginx/sites-available. Если не найдено, найдите его здесь: /etc/nginx/nginx.conf, /usr/local/nginx/conf или /usr/local/etc/nginx.

Найдя файл конфигурации Nginx, откройте его в текстовом редакторе с помощью команды:

sudo nano /etc/nginx/sites-available/server.conf

Замените местоположение фактическим местоположением и именем вашего файла конфигурации.

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

sudo service nginx restart

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

Откройте файл конфигурации Nginx для редактирования, затем вставьте следующий код:

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

Вот разбивка команд:

  • Listen 80: Это дает команду системе перехватывать весь HTTP-трафик через порт 80
  • Server_name _ ;: Это будет соответствовать любому имени хоста
  • Return 301: Это говорит браузеру и поисковым системам, что это постоянное перенаправление
  • https://$host$request_uri: Это короткий код для указания версии HTTPS того, что набрал пользователь

После редактирования весь трафик сервера HTTP по умолчанию перенаправляется на HTTPS.

Примечание: Это должен быть единственный блок сервера, прослушивающий порт 80. Блок сервера - это единица кода конфигурации в Nginx. Он помечен именем и фигурными скобками.

Перенаправить определенный сайт

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

server {
    listen 80 default_server;
    server_name my_app.com;
    return 301 https://my_app.com$request_uri;
}

Замените имя my_app.com на имя сервера, который вы собираетесь перенаправить. Вы также можете добавить дополнительные сайты, добавив еще один блок сервера. Просто скопируйте код и измените имя сервера.

Принимать только SSL-соединения

Добавьте этот код, чтобы убедиться, что сервер будет принимать только SSL-соединения через порт 443:

server {
    listen 443 ssl default_server;
    server_name my_app.com;
}

server {
    listen 443 ssl;
    server_name my_website.com;
}

Этот блок кода настроит два веб-сайта, my_app.com и my_website.com, на прием только SSL-соединений. Вы можете добавить дополнительные сайты, используя дополнительные блоки серверов.

Редирект страниц

Вы можете использовать rewrite для быстрого управления 301 (постоянным) или 302 (временным) перенаправлением:

	Location /index.html {
       rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;
}

В большинстве случаев это будет index.html, но вы можете указать любой путь или шаблон.

Обратите внимание, что команда rewrite должна использоваться только с перенаправлениями 301 или 302.

Как перенаправить домен с помощью Nginx

Это полезно, если вы сменили домен (например с .org на .com). Nginx также можно использовать для перенаправления со старого доменного имени на новое доменное имя.

server {
    listen 80;
    listen 443 ssl;
    server_name www.old_company.com;
    return 301 $scheme://www.new_company.com$request_uri;
}

В большинстве случаев команда return предпочтительнее команды rewrite.

Редирект с сайта www на сайт без www

Этот процесс аналогичен стандартному перенаправлению страницы:

server {
    server_name www.new_company.com;
    return 301 $scheme://new_company.com$request_uri;
}

Причины для перенаправления трафика

Есть несколько причин для перенаправления HTTP-трафика на HTTPS:

  • Принудительное установление более безопасного зашифрованного соединения.
  • Сохранение страницы с хорошим SEO-рейтингом, но перенаправление своего трафика на новую страницу.
  • Уведомлять и временно отправлять трафик на страницу «на обслуживании».
  • Постоянно отправлять трафик с одного сайта на другой, например после корпоративного слияния.

Заключение

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

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59