Прокси веб-сервера Apache и nGinx
Доброго времени друзья! В рамках заметки, решил написать небольшой пост о том, как проксировать веб-сервер Apache и nGinx через настройку его конфигурации(виртуальных хостов), на сторонний внешний сервер. Это может пригодиться например для быстрого переноса сайтов на новый сервер, чтобы не было простоя в его работе, при ожидании обновления DNS записей(типа A) и их кеша на серверах имен, просто перенаправлении трафика или в ряде других случаев.
Прокси Apache
Для настройки проксирования, первым делом включаем следующие модули Apache:
proxy proxy_html proxy_connect proxy_http proxy_http2 |
Для этого в директории /etc/httpd/conf.d/(или /etc/apache2/conf.d/11-proxy.conf) создаем файл конфигурации, со следующим содержимым:
LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_proxy_connect modules/mod_proxy_connect.so LoadModule proxy_http2_module modules/mod_proxy_http2.so LoadModule proxy_html_module modules/mod_proxy_html.so |
Далее в конфигурационный файл виртуального хоста добавляем строки (ниже на примере это строки начинающиеся на proxy):
<VirtualHost *:80> ServerName example.com DocumentRoot /var/www/admin/data/www/example.com DirectoryIndex index.php index.html ServerAlias www.2botan4.house.ru DirectoryIndex index.php index.html CustomLog /dev/null combined ProxyRequests Off ProxyPreserveHost On ProxyVia full ProxyPass / http://10.0.0.2:80/ ProxyPassReverse / http://10.0.0.2:80/ </VirtualHost> |
Прокси nGinx
Пример настройки конфигурационного файла виртуального хоста example.com для nGinx, с проксированием на удаленный сервер с IP 10.0.0.2:
server {
listen 10.0.0.1:80;
listen 10.0.0.1:443;
server_name example.com *.example.com;
location / {
proxy_pass $scheme://10.0.0.2$request_uri;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header :path $request_uri;
proxy_pass_header Set-Cookie;
}
} |

Автор:






