Nginx Reverse Proxy + Apache2

Main

Оценка: 83.61% - 13 Голосов

Общая

Nginx Revers Proxy позволяет ретранслировать http/https запросы из внешней сети на один или несколько серверов, логически расположенных во внутренней сети. Удобно размещать несколько доменных имён на одном IP адресе.

Прежде чем настраивать ретрансляцию необходимо настроить DNS сервер.

DNS сервер, с которым работает Nginx, должен отдавать IP адрес самого Nginx-сервера при запросе доменного имени.

Создадим конфигурацию ретрансляции в /etc/nginx/conf.d/*.conf
Запретим обрабатывать запросы при обращении по IP адресу.

По умолчанию при обращении на IP адрес Nginx ретранслирует запрос на первый в конфигурации сервер. Что бы это избежать мы запретим обрабатывать такие запросы



server {
  listen      IP адрес Nginx сервера;
  server_name "";
  return      444;
}

Если ваш Nginx сервер спрятан за NAT то необходимо указать его внутренний адрес.

 

Настройка ретрансляции запроса по доменному имени


server {
        listen Адрес домена;
        server_name Адрес домена;
        location / {
                proxy_redirect off;
                proxy_buffering off;
                proxy_set_header   X-Real-IP $remote_addr;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header   Host $http_host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_pass http://адрес веб-сервера на который ретранслируется запрос;
        }
}

Перезапускаем Nginx server.



service nginx restart

 

Настройка Apache2

Если ваш Apache сервер не видит внешние IP адреса в ретранслированных запросах то вам необходимо включить определённые модули на сервере.

Активируем необходимые модули


a2enmod rewrite
a2enmod remoteip

 

 

Далее создаём или редактируем /etc/apache2/conf-available/remoteip.conf



<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1 IP адрес Nginx сервера
</IfModule>

 

После чего перезапускаем Apache server


service apache2 restart

 

Стандартный конфиг файл активированного в Apache2 сайта


 <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        <Directory "/var/www/html">
        Options -Indexes
        AllowOverride All
        </Directory>
</VirtualHost>

 

Добавить комментарий


Logo