Nginx

Как перенаправить URL-адреса в Nginx

Как перенаправить URL-адреса в Nginx
Nginx - это легкий веб-сервер, который часто используется как обратный прокси, веб-сервер и балансировщик нагрузки. Nginx по умолчанию предлагает множество полезных функций, и другие могут быть добавлены в виде модулей при его установке. В этом руководстве показано, как использовать Nginx для перенаправления URL-адресов в разные стороны. Несмотря на то, что Nginx предоставляет множество функций для перенаправления URL-адресов, в этом руководстве используется часть из них, так как его намерение состоит в том, чтобы научить перенаправлению URL-адресов только наиболее важные из них. В этом руководстве рассматриваются следующие области: перенаправление незащищенных (порт 80) URL-адресов на его защищенную версию, перенаправление запроса на IP-адрес на доменное имя и, наконец, перенаправление любых других поддоменов, доменов на основной домен.

Предварительно требования

Прежде всего, это руководство предполагает, что у пользователя есть правильный SSH-клиент, установленный на компьютере, если вы не продолжите и установите Putty в качестве клиента, затем используйте следующие команды. Кроме того, при наличии Nginx также требуется редактор Nano.

  1. Введите следующие команды для установки текстового редактора Nano. Первая команда помогает получить последние пакеты из репозиториев, а вторая команда устанавливает последнюю версию текстового редактора nano.
sudo apt-get update
sudo apt-get install nano
  1. В окне терминала введите следующую команду, чтобы изменить текущий каталог на каталог nginx.
cd / etc / nginx / сайты-доступные
  1. Теперь введите нано по умолчанию или имя файла, связанного с доменом, чтобы изменить настройки домена.
  2. С этого момента следуйте одному из следующих сегментов, чтобы продолжить.

Перенаправление с HTTP (порт 80)

Google, Bing и многие другие поисковые системы в настоящее время отдают предпочтение веб-сайтам с зашифрованным соединением. Когда соединение между клиентом и сервером зашифровано, данные, передаваемые через это конкретное соединение, защищены, и, таким образом, третьи стороны не могут получить доступ к этим данным. Когда соединение не зашифровано, такие сайты небезопасны и, следовательно, ставят под угрозу безопасность данных. Небезопасный веб-сайт использует порт 80 для предоставления своих услуг общедоступным. К сожалению, по умолчанию веб-браузер подключается к порту 80, поскольку веб-сервер предполагает, что это то, что клиент хочет по умолчанию, и поэтому запрос должен быть перенаправлен на его защищенную версию. Есть несколько способов сделать это с помощью Nginx.

Способ 1

Если текущее доменное имя доступно и если оно получает запросы от клиентов, они могут быть перенаправлены на другой домен с помощью следующего фрагмента кода. Просто скопируйте его в файл по умолчанию или в файл домена.

Параметр сервера по умолчанию указывает, что этот блок сервера является сервером по умолчанию, поэтому любые запросы к порту 80 сначала по умолчанию запускают этот блок сервера, а затем следует остальное. Скобка означает, что он также захватывает запросы из сетей ipv6. Возврат 310 означает, что перенаправление является постоянным, и, таким образом, ссылочный вес передается вместе с ним.

server
слушаем 80 default_server;
слушать [::]: 80 default_server;
имя_сервера домен.com www.домен.com;
вернуть 301 https: // домен.com $ request_uri;

Способ 2

Если к текущему серверу не прикреплен веб-сайт и требуется перенаправление любых запросов на порт 80, то можно использовать следующий блок сервера. Скопируйте его в файл по умолчанию, как указано ранее. Здесь _ (подчеркивание) означает любой домен. Как и ранее, здесь также можно использовать параметр default_server, круглые скобки (для адресов IPv6), например необязательные атрибуты.

server
слушаем 80 default_server;
имя сервера _;
return 301 https: // $ host $ request_uri;

Способ 3

Следующий фрагмент кода означает, что если соединение не зашифровано, то есть порт 80 принимает запросы, то они перенаправляются на безопасную версию указанного домена. Его следует скопировать в любое место блока server , но после параметра server_name.

если ($ схема != "https")
return 301 https: // $ host $ request_uri;

Перенаправление с IP-адреса

В отличие от общего хоста, как выделенные серверы, так и виртуальные частные серверы всегда имеют выделенный IP-адрес. Если веб-сервер настроен с помощью Nginx с подчеркиванием (что означает, что сервер обрабатывает каждый запрос), то любой запрос на IP-адрес также получает доступ к веб-сайту. Доступ к веб-сайту через IP-адрес - это не то, чего хочет каждый веб-мастер по разным причинам. С другой стороны, если каждый запрос обрабатывается, злоумышленники могут связать любой случайный домен с веб-сервером, что не подходит для названия бренда или бизнеса, и поэтому важно обрабатывать только запросы к определенным доменам или и айпи адрес. Этот сегмент демонстрирует в таких случаях, как обрабатывать запросы к IP-адресу веб-сервера. Использование этого блока кода вместе с одним из вышеперечисленных блоков кода (кроме метода 2 предыдущего решения) гарантирует, что каждый запрос к обоим доменам, а IP-адрес будет перенаправлен в желаемый пункт назначения.

Как сказано выше, скопируйте следующий фрагмент кода в файл Nginx по умолчанию (предварительные требования, 3-й шаг). Вместо использования имени домена в параметре server_name просто используйте IP-адрес сервера, а затем в следующей строке используйте «return 301 domain», куда перенаправляется запрос. Теперь, когда на сервер поступает запрос на этот конкретный IP-адрес, он перенаправляется на указанный домен. Лучшим примером для этого является случай, когда случайный пользователь вводит IP-адрес веб-сервера для прямого доступа к сайту. Если следующий фрагмент кода нигде не указан в файле по умолчанию, любой запрос к IP не обрабатывается; следовательно, пользователи не могут получить доступ к веб-сайту через IP-адрес.

server
слушать 80;
слушать [::]: 80;
прослушать 443 ssl http2;
слушайте [::]: 443 ssl http2;
имя_сервера 192.168.1.1;
возврат 301 https: // nucuta.com;

Перенаправление с любого другого домена

Это решение такое же, как первое решение этого руководства, за исключением того, что оно также перенаправляет запросы на порт 443 веб-сервера, что означает, что как защищенные, так и незащищенные запросы перенаправляются на указанный домен в возвращаемом параметре. Как было сказано ранее, просто скопируйте это в файл по умолчанию.

server
слушать 80;
слушать [::]: 80;
прослушать 443 ssl http2;
слушайте [::]: 443 ssl http2;
имя_сервера домен.com www.домен.com;
возврат 301 https: // nucuta.com;

Завершение

После выполнения одного из вышеперечисленных решений файл nginx должен быть скомпилирован, чтобы его конфигурация вступила в силу. Однако перед компиляцией файл по умолчанию необходимо протестировать, так как он предотвращает сбой веб-сервера, если в конфигурации произошла ошибка.

  1. Просто используйте следующую команду в терминале Linux, чтобы проверить файл конфигурации по умолчанию, если результат хороший, перейдите к следующему шагу.
sudo nginx -t
  1. Используйте одну из следующих команд, чтобы перезапустить веб-сервер Nginx. Команда зависит от названия и версии дистрибутива Linux.
sudo systemctl перезапустить nginx
sudo service nginx перезагрузка
sudo / etc / init.перезагрузка d / nginx
10 лучших игр для Ubuntu
Платформа Windows была одной из доминирующих платформ для игр из-за огромного процента игр, которые разрабатываются сегодня с встроенной поддержкой Wi...
5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...
Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...