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
  Прошло уже много времени с тех пор, как появился первый веб-сервер. На сегодняшний день есть довольно много разных интересных
img
В эпоху, когда многие процессы автоматизированы, люди постоянно ищут способы, как эффективно выполнять задачи. А почему бы и нет
img
Введение В серверной стойке (серверном шкафу) хранится и размещается информационно-техническое оборудование, например, выделенны
img
  Всплески трафика могут стать как проблемой для вашей инфраструктуры хостинга, так и потрясающей возможностью для развития.  На
img
Подробное руководство, предназначенное для понимания и оптимизации различных типов соединений в SQL, которое повысит вашу произв
img
  Введение Цель резервного копирования и репликации – предотвратить критическую потерю данных в результате непредвиденных событи
Комментарии
ЛЕТНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59