Перенаправление Apache и Nginx | FirstVDS
Перенаправления (редиректы) используются в тех случаях, когда вам необходимо, чтобы перенаправить пользователи сайта на нужный адрес.
В данной статье расскажем, как настраивать перенаправления в Apache и Nginx — одних из самых популярных веб-серверов в мире.
- Apache
- Подключения модуля mod_rewrite
- Правила Redirect
- Redirect или RedirectPermanent
- RedirectMatch
- RewriteRule
- Редирект с одного сайта на другой
- Редирект с www на без www
- Редирект с без www на www
- Перенаправление домена с https на http
- Перенаправление домена с http на https
- Nginx
- Редирект 301 с www.domain.com на domain.com
- Редирект 301 с domain.
- Редирект 301 с https на http
- Редирект 301 с http на https
Apache
Подключения модуля mod_rewrite
Для включения перенаправления средствами Apache достаточно, чтобы модуль mod_rewrite.so был загружен в Apache.
Для ОС Ubuntu, Debian:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Для ОС CentOS, RedHat, AlmaLinux нужно проверить, чтобы в файле /etc/httpd/conf.modules.d/00-base.conf
была строка:
LoadModule rewrite_module modules/mod_rewrite.so
Если ее нет, то нужно добавить ее в конец файла. Если она закомментирована (в начале строки знак
) — нужно раскомментировать строку.
Для того чтобы директивы mod_rewrite можно было использовать в .htaccess, надо в конфигурационном файле Apache, в соответствующем разделе <Directory /путь/до/директории>
прописать:
AllowOverride all
После внесения изменений в конфигурационный файл Apache, для вступления в силу этих изменений, нужно перезапустить веб сервер.
Для ОС Ubuntu, Debian:
systemctl restart apache2
Для ОС CentOS, RedHat, AlmaLinux:
systemctl restart httpd
В .htaccess для работы перенаправления нужно указать следующую директиву:
RewriteEngine On
Правила Redirect
Эти директивы вы можете прописывать как в конфиге Apache для нужного virtualhost, так и в файле .htaccess.
Redirect или RedirectPermanent
Главный недостаток данных правил заключается в том, что для каждого адреса необходимо прописывать новое правило. Если необходимо сделать несколько редиректов, то каждый новый редирект пишется с новой строки.
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
или
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
Для перенаправления всех запросов на другой сайт вы можете использовать следующую конструкцию:
Redirect 301 / http://new-domain.ru/
или
Redirect permanent / http://new-domain. (.*)$ https://www.domain.com/$1 [R=301,L]
Nginx
Модуль ngx_http_rewrite_module, необходимый для настройки перенаправлений, устанавливается автоматически вместе с Nginx.
Рекомендуется добавлять правила редиректа по одному, т.к. можно получить ошибку, либо циклическое перенаправление. Поэтому после каждого изменения конфигурационного файла нужно проверять его корректность командой:
nginx -t
Редирект 301 с www.domain.com на domain.com
Для Nginx вам нужно создать две секции server в конфигурационном файле, одну для домена с www, вторую для домена без www:
Секция server
для редиректа:
server { listen 80; server_name www.domain.com; return 301 $scheme://domain.com$request_uri; }
Секция server
, где находятся основные настройки домена:
server { listen 80; server_name domain.com; ..... }
После внесения изменений в конфигурационный файл Nginx, для вступления в силу этих изменений, нужно перезапустить веб сервер.
nginx -s reload
или
systemctl reload nginx
Редирект 301 с domain.com на www.domain.com
Для Nginx вам нужно создать две секции server в конфигурационном файле, одну для домена с www, вторую для домена без www:
Секция server
для редиректа:
server { listen 80; server_name domain.ru; return 301 http://www.$host$request_uri; }
Секция server
, где находятся основные настройки домена.
server { listen 80; server_name www.domain.com; ..... }
После внесения изменений в конфигурационный файл Nginx, для вступления в силу этих изменений, нужно перезапустить веб сервер.
nginx -s reload
или
systemctl reload nginx
Редирект 301 с https на http
Для Nginx вам нужно создать две секции server
в конфигурационном файле, одну для https (443 порт), вторую для http (80 порт).
Секция server
для открытия по https (443 порт) и настройки редиректа:
server { listen 443; server_name domain.ru www.domain.ru; return 301 http://$host$request_uri; }
Секция
для открытия по http (80 порт), где находятся основные настройки домена.
server { listen 80; server_name www.domain.com; ..... }
После внесения изменений в конфигурационный файл Nginx, для вступления в силу этих изменений, нужно перезапустить веб сервер.
nginx -s reload
или
systemctl reload nginx
Редирект 301 с http на https
Для Nginx вам нужно создать две секции server
в конфигурационном файле, одну для http (80 порт), вторую для https (443 порт).
Для нового домена в конф. файле nginx
Секция server
для открытия по http (80 порт) и настройки перенаправления:
server { listen 80; server_name domain. com www.domain.com; return 301 https://$host$request_uri; }
Секция server для открытия по https (443 порт), где находятся основные настройки домена.
server { listen IP.се.рве.ра:443; server_name www.domain.com; ..... }
Для существующего домена в конф. файле nginx
Если вы вносите изменения в существующую секцию конф. файла nginx делайте это так:
из основной секции домена удалите строку вида
listen IP.се.рве.ра:80;
и создайте новую секцию server такого вида:
server { listen 80; server_name domain.com www.domain.com; return 301 https://$host$request_uri; }
После внесения изменений в конфигурационный файл Nginx, для вступления в силу этих изменений, нужно его перезапустить так:
nginx -s reload
или
systemctl reload nginx
Аналоги Apache HTTP Server — 4 похожие программы и сервисы для замены
Аналоги Apache HTTP Server — 4 похожие программы и сервисы для замены- 226
nginx
Nginx [engine x] — это HTTP и обратный прокси-сервер, а также почтовый прокси-сервер.
- Бесплатная
- Windows
- Mac OS
Nginx [engine x] — это HTTP и обратный прокси-сервер, а также почтовый прокси-сервер, написанный Игорем Сысоевым. Он работает более пяти лет на многих сильно загруженных российских сайтах, включая Rambler (RamblerMedia.com).
- 100
Serva 32/64
Serva — это автоматизированный PXE-серверный ускоритель решений, основанный на портативном мультисервере "все в одном".
- Условно бесплатная
- Windows
Serva — это автоматизированный сервер PXE Solution Solution Accelerator, основанный на универсальном портативном многосерверном механизме, включающем протоколы BINL (RIS / WDS), HTTP, FTP, TFTP, DHCP, proxyDHCP, DNS, SNTP и SYSLOG.
- 24
Microsoft IIS
Информационные службы Интернета (IIS) для Windows® Server — это гибкий, безопасный и простой веб-сервер.
- Платная
- Windows
Информационные службы Интернета (IIS) для Windows® Server — это гибкий, безопасный и простой в управлении веб-сервер для размещения чего-либо в Интернете. От потоковой передачи мультимедиа до размещения веб-приложений — масштабируемая и открытая архитектура IIS готова к решению самых сложных задач.
- 11
Winginx
Winginx — удобный инструмент для веб-разработки с сервером nginx.
- Бесплатная
- Windows
Winginx — это комплекс локальных веб-серверов под управлением Windows (Vista и выше) для разработки на PHP и Node. js с использованием баз данных MySQL, MongoDB, Redis, memcached.
Apache Lounge предоставляет актуальные двоичные файлы Windows и популярные сторонние модули уже более 15 лет. У нас сотни тысяч довольных пользователей: маленькие и большие компании, а также домашние пользователи. Всегда стройте с актуальными зависимостями и последними компиляторами и тщательно тестируйте. На двоичные файлы ссылаются ASF, Microsoft, PHP и т. д., и все больше и больше программного обеспечения упаковывается с нашими двоичными файлами и модулями. Двоичные файлы, собранные из исходников из ASF на httpd.apache.org, содержат последние исправления и последние зависимости, такие как zlib, openssl и т. д., что делает загрузку здесь в основном более актуальной, чем загрузку из других мест. Бинарники не запускают на XP и 2003. Работает на: 7 SP1, Vista SP2, 8/8.1, 10, 11 Server 2008 SP2/R2 SP1, Server 2012/R2, Server 2016/2019/2022. Сборка с использованием последней версии Windows Visual Studio C++ 2022, также известной как VS17. Имеет улучшения, исправления и оптимизации по сравнению с VC16 в таких областях, как производительность, управление памятью, новые стандартные функции соответствия, генерация кода и стабильность. Например, настройка качества кода и улучшения, сделанные в различных областях генерации кода для «скорости». И больше использует новейшие процессоры и внутренние функции поддерживаемых выпусков Windows (win7 и выше). VS17 обратно совместим. Это означает, что модуль VS16/15/14 можно использовать внутри бинарного файла VS17. Убедитесь, что Вы установили последнюю 14.36.32532 Visual C ++ Redistibulable Visual Studio 2015-2022: VC_REDIST_X64 или VC_REDIST_X86 См. Средственно или Двоичные файлы Apache 2.4 VS17 Информация и журнал изменений httpd-2.4.57-win64-VS17.zip 31 мая 23 11.220k Подпись PGP (Открытый ключ PGP ), SHA1-SHA512 Контрольные суммыЧтобы убедиться, что загрузка не повреждена и не была подделана, используйте PGP, см. Подпись PGP Модули Apache 2.4 VS17 Почта для подписей PGP и/или контрольных сумм SHA для проверки содержимого файла. Примечание: вы можете использовать модуль VS17-Win64 с VS16 mod_jk mod_jk-1.2.48-win64-VS17.zip информация 18 янв.mod_wasm Для запуска двоичных файлов WebAssembly mod_wasm-0.12.0-win64-VS17.zip информация 02 июн.mod_qos Модуль Quality Of Service, способен защитить ваш сервер от различные виды вредоносного доступа или атак, таких как slowloris, DDos mod_qos-11.74-win64-VS17.zip информация 03 июня 23 1.094Кmod_fcgid Модуль FastCGI ASF mod_fcgid-2. 3.10-win64-VS17.zip информация 08 нояб. 22 45K мод_безопасность Брандмауэр приложений, механизм обнаружения и предотвращения вторжений mod_security-2.9.7-win64-VS17.zip информация 09 янв. mod_xsendfile Обрабатывает заголовки X-SENDFILE, зарегистрированные исходным обработчиком вывода. Это полезно для обработки вывода сценария, например. php, perl или любой cgi. mod_xsendfile-1.0-P1-win64-VS17.zip информация 08 нояб. 22 15K mod_log_rotate внутрипроцессная ротация серверных журналов mod_log_rotate-1.0.2-win64-VS17.zip информация 08 нояб. 22 11K dbd_modules dbd_modules-1.0.6-win64-VS17.zip информация 08 нояб. 22 24K mod_bw Ограничитель пропускной способности mod_bw-0.92-win64-VS17.zip информация 08 нояб. 22 29K mod_view Отображение заголовка, хвоста или всего содержимого файла, для удаленного просмотра файлов журнала. mod_view-2.2-win64-VS17.zip информация 08 ноя 22 21K mod_watch Интерфейс мониторинга Vhost. Смотреть и собирать байты, запросы, входящие и исходящие документы для каждого виртуального хоста, владельца файла, удаленного IP-адреса, каталог или расположение и сервер в целом. mod_watch-4.3-win64-VS17.zip информация 08 нояб. 22 26K mod_evasive Помогает предотвратить атаки HTTP DoS (DDoS) или атаки грубой силы сервера. mod_evasive-2.2.0-win64-VS17.zip информация 08 ноя 22 18K |
Пошаговое руководство. Настройка веб-сервера Apache и обслуживание файлов Amazon EFS
Пошаговое руководство. Настройка веб-сервера Apache и обслуживание файлов Amazon EFS — Amazon Elastic File SystemОдин экземпляр EC2, обслуживающий файлыНесколько экземпляров EC2, обслуживающие files
У вас могут быть инстансы EC2, на которых работает веб-сервер Apache, обслуживающий файлы, хранящиеся в вашей файловой системе Amazon EFS. файловая система. Это может быть один экземпляр EC2, или, если это необходимо вашему приложению, вы можете иметь несколько экземпляров EC2. экземпляры, обслуживающие файлы из вашей файловой системы Amazon EFS. Следующие процедуры описано.
Настройте веб-сервер Apache на EC2 пример.
Настройте веб-сервер Apache на нескольких экземпляров EC2, создав группу Auto Scaling. Вы можете создать несколько EC2 экземпляров с помощью Amazon EC2 Auto Scaling — сервиса AWS, позволяющего увеличивать или уменьшать количество экземпляров EC2 в группе в соответствии с потребностями вашего приложения. Когда у вас несколько веб-сайтов серверов, вам также нужен балансировщик нагрузки для распределения трафика запросов между ними.
Примечание
Для обеих процедур вы создаете все ресурсы в регионе Запад США (Орегон).
( сша-запад-2
).
Один экземпляр EC2, обслуживающий файлы
Выполните шаги, чтобы настроить веб-сервер Apache на одном экземпляре EC2 для обслуживания файлов, которые вы создать в файловой системе Amazon EFS.
Следуйте инструкциям в упражнении «Начало работы», чтобы у вас конфигурация, состоящая из следующего:
Инструкции см. в разделе Начало работы с Amazon Elastic File System. Выполняя шаги, записывайте далее:
(необязательно) Вы можете размонтировать файловую систему из созданной вами точки монтирования. в упражнении «Начало работы».
$ sudo umount ~/
efs-точка монтирования
В этом пошаговом руководстве вы создадите еще одну точку монтирования для файловой системы.
В вашем экземпляре EC2 установите веб-сервер Apache и настройте его как следует:
Подключитесь к своему экземпляру EC2 и установите веб-сервер Apache.
$
sudo yum -y установить httpdЗапустить службу.
$
служба sudo httpd startСоздать точку монтирования.
Обратите внимание, что
DocumentRoot
в/etc/httpd/conf/httpd.conf
файл указывает на/var/www/html
(DocumentRoot "/var/www/html"
).Вы смонтируете файловую систему Amazon EFS в подкаталог в корне документа.
Создайте подкаталог с именем
efs-mount-point
для использования в качестве точки монтирования вашей файловой системы в/var/www/html
.$
sudo mkdir /var/www/html/efs-mount-pointСмонтируйте файловую систему Amazon EFS с помощью следующей команды. замените
идентификатор файловой системы
на идентификатор вашей файловой системы.$
sudo mount -t efsидентификатор файловой системы
://var/www/html/efs-точка монтирования
Проверьте установку.
Добавьте правило в группу безопасности экземпляра EC2, которую вы создали в разделе Получение Начал упражнение, чтобы разрешить HTTP-трафик на TCP-порту 80 из любого места.
После добавления правила группа безопасности экземпляра EC2 будет иметь следующие входящие правила.
Инструкции см. в разделе Создание групп безопасности с помощью Консоль управления AWS.
Создайте образец HTML-файла.
Изменить каталог на точку монтирования.
$ cd /var/www/html/efs-точка монтирования
Создайте подкаталог с именем
sampledir
и измените владение.$
sudo mkdir образец каталога$
sudo chown ec2-user sampledir$
sudo chmod -R o+r выборка каталогаИзмените каталог, чтобы вы могли создавать файлы в подкаталоге sampledir .
$
компакт-диск образец каталогСоздайте образец файла
hello.html
.$ echo "
Привет от Amazon EFS
" > hello.html
Откройте окно браузера и введите URL-адрес для доступа к файлу (это общедоступный DNS-сервер). имя экземпляра EC2, за которым следует имя файла). Например:
http://
EC2-instance-public-DNS
/efs-mount-point/sampledir/hello.html
Теперь вы обслуживаете веб-страницы, хранящиеся в файловой системе Amazon EFS.
Примечание
Эта установка не настраивает экземпляр EC2 для автоматического запуска веб-сервера (httpd) при загрузке, а также не монтирует файловую систему при загрузке. В следующем прохождении вы создайте конфигурацию запуска, чтобы настроить это.
Обслуживание нескольких экземпляров EC2 files
Следуйте инструкциям, чтобы обслуживать один и тот же контент в файловой системе Amazon EFS из нескольких EC2. экземпляров для улучшения масштабируемости или доступности.
Выполните действия, описанные в Шаге 1. Создайте файл Amazon EFS. системное упражнение, чтобы у вас была файловая система Amazon EFS создан и испытан.
Важно
В этом пошаговом руководстве вы не используете экземпляр EC2, созданный в разделе Получение Приступил к упражнениям. Вместо этого вы запускаете новые инстансы EC2.
Создайте балансировщик нагрузки в своем облаке VPC, выполнив следующие действия.
Определение балансировщика нагрузки
В разделе Basic Configuration выберите VPC, в котором вы также создайте экземпляры EC2, на которых вы монтируете файловую систему.
В разделе Select Subnets выберите все доступные подсети . Подробнее см.
cloud-config
скрипт в следующем разделе.Назначение групп безопасности
Создайте новую группу безопасности для балансировщика нагрузки, чтобы разрешить HTTP-доступ с порта 80 из любого места, как показано ниже:
Примечание
Когда все заработает, вы также можете обновить группу безопасности экземпляра EC2. доступ к входящему правилу, чтобы разрешить HTTP-трафик только от балансировщика нагрузки.
Настройка проверки работоспособности
Установите для параметра Ping Path значение
/efs-точка-монтирования/test. html
.efs-mount-point
— это подкаталог, в котором у вас смонтирована файловая система. Вы добавляетеtest.html
страницу в нем позже в этой процедуре.
Примечание
Не добавляйте инстансы EC2. Позже вы создаете группу автоматического масштабирования, в которой запустить инстанс EC2 и указать этот балансировщик нагрузки.
Инструкции по созданию балансировщика нагрузки см. в разделе Начало работы с эластичной нагрузкой. Балансировка в руководстве пользователя Elastic Load Balancing .
Создайте группу Auto Scaling с двумя экземплярами EC2. Сначала вы создаете запуск конфигурация, описывающая экземпляры. Затем вы создаете группу Auto Scaling, указание конфигурации запуска. Следующие шаги предоставляют информацию о конфигурации которые вы укажете для создания группы Auto Scaling из консоли Amazon EC2.
Выберите Запуск конфигураций под АВТО МАСШТАБИРОВАНИЕ из левой навигационной панели.
Выберите Создать группу автоматического масштабирования , чтобы запустить мастер.
Выберите Создать конфигурацию запуска .
Из Quick Start выберите последнюю версию Amazon Linux 2 AMI. Это тот же AMI, который вы использовали на шаге 2: создайте ресурсы EC2 и запустите свой экземпляр EC2 в разделе «Начало работы» упражнение.
В разделе Advanced выполните следующие действия:
Для Тип IP-адреса выберите Назначить общедоступный IP-адрес адрес для каждого экземпляра .
Скопируйте/вставьте следующий сценарий в поле Данные пользователя .
Вы должны обновить сценарий, указав значения для
идентификатор файловой системы
иaws-region
(если вы следовали инструкциям по началу работы упражнения, вы создали файловую систему в регионе us-west-2).В скрипте обратите внимание на следующее:
Сценарий устанавливает клиент NFS и веб-сервер Apache.
Команда echo записывает следующую запись в
/etc/fstab
файл, идентифицирующий DNS-имя файловой системы и подкаталог, в который его монтировать. Эта запись гарантирует, что файл монтируется после каждой перезагрузки системы. Обратите внимание, что DNS-имя файловой системы динамически построенный. Дополнительные сведения см. в разделе Подключение к Amazon EC2 с использованием DNS-имени.идентификатор файловой системы
.efs.aws-region
.amazonaws.com:/ /var/www/html/efs-mount-point nfs4 по умолчаниюСоздает подкаталог
efs-mount-point
и монтирует файловую систему на это.Создает страницу
test.html
, чтобы проверка работоспособности ELB могла найти файл (когда при создании балансировщика нагрузки вы указали этот файл в качестве точки пинга).
Дополнительные сведения о сценариях пользовательских данных см. в разделе Добавление Пользовательские данные в Руководстве пользователя Amazon EC2 для инстансов Linux .
#облачная-конфигурация package_upgrade: правда пакеты: - нфс-утилиты - httpd выполнить команду: - echo "$(curl -s http://169. 254.169.254/latest/meta-data/placement/availability-zone).
идентификатор файловой системы
.efs.aws-region
.amazonaws.com:/ /var/www/html/efs-точка монтирования nfs4 по умолчанию" >> /etc/fstab - mkdir /var/www/html/efs-точка монтирования - гора -а - коснитесь /var/www/html/efs-mount-point/test.html - запуск службы httpd - chkconfig httpd на
Для Назначьте группу безопасности , выберите Выберите существующая группа безопасности , а затем выберите созданную группу безопасности для экземпляра EC2.
Теперь настройте сведения о группе Auto Scaling, используя следующую информацию.
Для размера группы выберите
Начните с 2 экземпляров
. Вы создадите два экземпляра EC2.Выберите свой VPC из списка Network .
Выберите подсеть в той же зоне доступности, которую вы использовали при указании монтировать target ID в скрипте User Data при создании конфигурации запуска в предыдущий шаг.
В разделе 9 Advanced Details 0011
Для Балансировка нагрузки выберите Получать трафик от Elastic Load Balancer(s) , а затем выберите нужный балансировщик нагрузки. создан для этого упражнения.
Для проверки работоспособности типа выберите ELB .
Следуйте инструкциям по созданию группы автоматического масштабирования в разделе Настройка масштабируемой и сбалансированной нагрузки. Применение в Руководство пользователя автоматического масштабирования Amazon EC2 . Используйте информацию в предыдущие таблицы, где это применимо.
После успешного создания группы автоматического масштабирования у вас есть два экземпляра EC2 с
nfs-utils
и веб-сервер Apache. На каждом экземпляре проверьте что у вас есть подкаталог/var/www/html/efs-mount-point
с вашим Amazon EFS смонтированная на нем файловая система. Инструкции по подключению к экземпляру EC2 см. в разделе Подключение к вашему экземпляру Linux. в Руководство пользователя Amazon EC2 для инстансов Linux .Примечание
Если вы выберете Amazon Linux AMI 2016.03.0 Amazon Linux AMI при запуске инстанса Amazon EC2 вам не нужно устанавливать
nfs-utils
потому что он уже включен в AMI по умолчанию.Создайте образец страницы (index.html).
Изменить каталог.
$ cd /var/www/html/efs-точка монтирования
Создайте подкаталог для
sampledir
и измените владельца. И измените каталог, чтобы вы могли создавать файлы вsampledir
подкаталог. Если вы следовали предыдущим файлам обслуживания одного инстанса EC2, вы уже создалиsampledir
подкаталог, поэтому вы можете пропустить этот шаг.$ sudo mkdir образец каталога $ sudo chown ec2-user каталог выборки $ sudo chmod -R o+r каталог выборки $ cd сэмпл каталог
Создайте пример файла
index.html
.$ echo "
Привет из Amazon EFS
" > index.html
Теперь вы можете протестировать установку. Используя общедоступное DNS-имя балансировщика нагрузки, получите доступ к страница index.