Прокси веб-сервера Apache и nGinx

Author Автор: Роман Чернышов    Опубликовано: 3 декабря 2024

nginx apache proxy Доброго времени друзья! В рамках заметки, решил написать небольшой пост о том, как проксировать веб-сервер 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;
    }
}

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 359₽
Популярные записи
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка