UMGUM.COM (лучше) 

Site web-proxying ( Простейшее прозрачное проксирование на сторонний сервер всего трафика сайта. )

24 августа 2017  (обновлено 1 апреля 2019)

OS: Linux.
Apps: Apache, Nginx.

Задача: обеспечить простейшее прозрачное проксирование всего трафика сайта на обслуживающий в действительности этот сайт сторонний сервер (например на время переноса web-сервисов в другую инфраструктуру, до полного обновления DNS-записей).


Пример проксирования посредством "Apache".

# vi /etc/apache2/sites-available/site.example.net.conf

# Блок отлова HTTP-обращений и перенаправления их на HTTPS
<VirtualHost *:80>
  ServerName site.example.net
  ....
  Redirect / https://site.example.net/
</VirtualHost>

# Блок описание параметров web-сайта как такового
<VirtualHost *:443>
  ServerName site.example.net:443
  ....

  # Блок описания параметров SSL/TLS-шифрования
  <IfModule mod_ssl.c>
    SSLEngine on
    ....
  </IfModule>
  ....

  # Явно включаем модуль проксирования HTTPS-трафика
  SSLProxyEngine on

  # Забираем в модуль проксирования весь трафик
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  # Задаём целевой сервер и параметры проксирования
  ProxyPass        / https://web.example.net/
  ProxyPassReverse / https://web.example.net/
  #
  ProxyPreserveHost On
  ProxyRequests off

</VirtualHost>

Проверяем средствами web-сервера конфигурацию и применяем таковую:

# apachectl configtest
# /etc/init.d/apache2 reload

Пример проксирования посредством "Nginx".

# vi /etc/nginx/sites-available/site.example.net.conf

# Блок отлова HTTP-обращений и перенаправления их на HTTPS
server {
  listen 80;
  server_name site.example.net;
  rewrite ^ https://site.example.net$request_uri permanent;
}

# Блок описание параметров web-сайта как такового
server {
  listen 443 ssl http2;
  server_name site.example.net;
  ....

  # SSL/TLS Configuration
  ssl on;
  ....

  # Задаём целевой сервер и параметры проксирования
  location / {
    proxy_pass https://web.example.net:443;
    proxy_ssl_verify off;
    proxy_ssl_server_name on;
    proxy_ssl_session_reuse on;
    proxy_set_header X-Scheme https;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Ssl on;
  }
}

Проверяем средствами web-сервера конфигурацию и применяем таковую:

# nginx -t
# /etc/init.d/nginx reload


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )