Обратное проксирование (Nginx Reverse-proxy)

Настройка Reverse-proxy на базе Nginx

Руководство по установке Nginx и настройке обратного проксирования (Reverse-proxy) для перенаправления веб-трафика на внутренние серверы.

Часть 1: Установка веб-сервера

Установите пакет веб-сервера Nginx из репозитория:

Copy

apt-get update && apt-get install -y nginx

Добавьте Nginx в автозагрузку и запустите службу прямо сейчас:

Copy

systemctl enable --now nginx

Часть 2: Настройка конфигурации проксирования

Создайте конфигурационный файл для ваших сайтов в директории sites-available.d (имя файла может быть любым, например имя_конфига.conf):

Copy

vim /etc/nginx/sites-available.d/имя_конфига.conf

Добавьте следующие блоки конфигурации server для каждого маршрутизируемого домена. Обратите внимание на пояснения в комментариях.

Пример файла конфигурации:

Copy

server {
    # Привязать сервер к стандартному веб-порту
    listen 80;
    
    # Указать домен, по которому будет доступен первый сервис
    server_name ваш_домен_1;
    
    location / {
        # Указать, куда перенаправлять трафик (внутренний сервер)
        proxy_pass http://ip_внутреннего_сервера_1:порт;
        
        # Передать домен, на который изначально был сделан запрос
        proxy_set_header Host $host;
        # Передать протокол запроса (http/https)
        proxy_set_header X-Forwarded-Proto $scheme;
        # Передать реальный IP-адрес клиента
        proxy_set_header X-Real-IP $remote_addr;
        # Передать полную цепочку адресов
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    # Можно сделать этот сервер по умолчанию для порта 80, добавив default_server
    listen 80 default_server;
    
    # Домен для второго сервиса
    server_name ваш_домен_2;
    
    location / {
        # Перенаправление трафика на второй внутренний сервер
        proxy_pass http://ip_внутреннего_сервера_2:порт;
        
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Часть 3: Активация конфигурации

Чтобы Nginx «увидел» созданный файл конфигурации, необходимо создать на него символическую ссылку в директории sites-enabled.d:

Copy

ln -s /etc/nginx/sites-available.d/имя_конфига.conf /etc/nginx/sites-enabled.d/

Перезапустите службу Nginx для применения изменений:

Copy

systemctl restart nginx

Часть 4: Проверка работоспособности

Для проверки работы обратного проксирования откройте браузер на клиентской машине и попытайтесь зайти на настроенные домены:

  • http://ваш_домен_1 — должен открыться первый внутренний сервис.
  • http://ваш_домен_2 — должен открыться второй внутренний сервис.

Убедитесь, что клиентская машина способна разрешить доменные имена (настроен локальный DNS-сервер или прописаны адреса в файле hosts).