Проксирование сайта с помощью apache proxy
Возникла не стандартная ситуация, когда мне нужно было обращения на веб сервер перенаправить на другой. Ситуация такая возникла из-за того, что в локальной сети на одно доменное имя было назначено несколько сервисов, в том числе сайт, а располагались эти сервисы на разных серверах. Для сайта проще всего было сделать проксирование на нужный web сервер.
Статья не будет описывать все варианты и настройки. Это просто заметка, чтобы не забыть самому как делал ? Возможно кому-то тоже пригодится.
У меня имеется старый web сервер httpd на CentOS 5 для внутренних нужд:
На нем нужно настроить проксирование запросов к сайту, чтобы перенаправлять их на другой веб сервер. Сделать это очень просто и быстро, рассказываю как. Открываем файл конфигурации httpd и проверяем там наличие нужного нам модуля:
# cat /etc/httpd/conf/httpd.conf | grep proxy_http_module
LoadModule proxy_http_module modules/mod_proxy_http.so
Все в порядке, модуль mod_proxy_http загружен. Теперь добавляем в самый конец httpd.conf:
<VirtualHost *:80>
ServerAdmin admin@site.ru
DocumentRoot /var/www/html
ServerName site.ru
ServerAlias www.site.ru
ErrorLog logs/site.ru-error_log
CustomLog logs/site.ru-access_log common
ProxyRequests Off
ProxyPreserveHost On
ProxyVia full
<proxy *>
Order deny,allow
Allow from all
<proxy *>
ProxyPass / http://10.1.3.15:80/
ProxyPassReverse / http://10.1.3.15:80/
</VirtualHost>
Параметр DocumentRoot может быть любым каталогом. Теперь все запросы по адресу site.ru, которые попадут на указанный веб сервер будут перенаправлены на web сервер 10.1.3.15. На нем должен быть настроен этот же виртуальный хост стандартным способом. Какую-то специальную настройку на нем делать не надо.
Вот пример проксирования запросов к сайту по https.
<VirtualHost *:80 *:443>
ServerAdmin admin@site.ru
DocumentRoot /var/www/html
ServerName site.ru
ServerAlias www.site.ru
ErrorLog logs/site.ru-error_log
CustomLog logs/site.ru-access_log common
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /root/cert/site.ru.crt
SSLCertificateKeyFile /root/cert/site.ru.key
ProxyRequests Off
ProxyPreserveHost On
ProxyVia full
<proxy *>
Order deny,allow
Allow from all
</proxy>
ProxyPass / https://10.1.3.15:443/
ProxyPassReverse / https://10.1.3.15:443/
</VirtualHost>
Более подробная информация по теме модуля apache mod_proxy находится на официальном сайте веб сервера — для версии 2.2 и 2.4.
- Мобильная версия Roundcube
- Настройка SSH авторизации по ключам
- Файл mysql-bin огромного размера. Как почистить, отключить или удалить бинарные логи
- Безопасность ssh подключения
- Подключение к lxc контейнеру Centos 7 по ssh в proxmox
- Настройка openvpn в LXC контейнере
- Peer is not supposed to register
- Ошибка sshd — fatal: Write failed: Permission denied
- Ошибка в работе samba в домене AD — id: username: No such user
- setfacl: Argument list too long