Предварительно требования
Прежде всего, это руководство предполагает, что у пользователя есть правильный SSH-клиент, установленный на компьютере, если вы не продолжите и установите Putty в качестве клиента, затем используйте следующие команды. Кроме того, при наличии Nginx также требуется редактор Nano.
- Введите следующие команды для установки текстового редактора Nano. Первая команда помогает получить последние пакеты из репозиториев, а вторая команда устанавливает последнюю версию текстового редактора nano.
sudo apt-get install nano
- В окне терминала введите следующую команду, чтобы изменить текущий каталог на каталог nginx.
- Теперь введите нано по умолчанию или имя файла, связанного с доменом, чтобы изменить настройки домена.
- С этого момента следуйте одному из следующих сегментов, чтобы продолжить.
Перенаправление с 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 должен быть скомпилирован, чтобы его конфигурация вступила в силу. Однако перед компиляцией файл по умолчанию необходимо протестировать, так как он предотвращает сбой веб-сервера, если в конфигурации произошла ошибка.
- Просто используйте следующую команду в терминале Linux, чтобы проверить файл конфигурации по умолчанию, если результат хороший, перейдите к следующему шагу.
- Используйте одну из следующих команд, чтобы перезапустить веб-сервер Nginx. Команда зависит от названия и версии дистрибутива Linux.
sudo service nginx перезагрузка
sudo / etc / init.перезагрузка d / nginx