Перейти до вмісту
Guides 2 хв читання 890 переглядів

Apache як зворотний проксі

Опануйте Apache mod_proxy для налаштування зворотного проксі. Цей посібник охоплює основні конфігурації, балансування навантаження та найкращі практики безпеки.

Apache як зворотний проксі

Apache може функціонувати як зворотний проксі, пересилаючи запити клієнтів до серверів бекенду та повертаючи їхні відповіді, використовуючи модуль mod_proxy та пов'язані з ним підмодулі.

Зворотний проксі діє як посередник для запитів клієнтів, направляючи їх до одного або кількох внутрішніх серверів бекенду. Він представляє єдиний інтерфейс для інтернету, приховуючи внутрішню архітектуру мережі. Переваги включають підвищену безпеку, балансування навантаження, термінацію SSL/TLS, кешування та спрощене керування бекендом.

Увімкнення mod_proxy

Щоб налаштувати Apache як зворотний проксі, необхідно увімкнути основний модуль mod_proxy та специфічні підмодулі. Ці модулі забезпечують підтримку різних протоколів та функцій.

Основні модулі:

  • mod_proxy: Основний проксі-модуль.
  • mod_proxy_http: Для проксіювання HTTP та HTTPS трафіку.
  • mod_proxy_balancer: Необхідний для балансування навантаження між кількома серверами бекенду.
  • mod_proxy_wstunnel: Для проксіювання WebSocket.
  • mod_ssl: Якщо Apache оброблятиме термінацію SSL/TLS для клієнтських з'єднань.

Увімкніть модулі за допомогою команди a2enmod у системах на базі Debian/Ubuntu або розкоментувавши директиви LoadModule у httpd.conf у системах на базі CentOS/RHEL:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod proxy_wstunnel
sudo a2enmod ssl
sudo systemctl restart apache2

Базова конфігурація зворотного проксі HTTP

Основними директивами для зворотного проксі є ProxyPass та ProxyPassReverse. Конфігурація зазвичай розміщується в блоці <VirtualHost> або безпосередньо в httpd.conf.

<VirtualHost *:80>
    ServerName yourdomain.com
    ProxyRequests Off
    ProxyPreserveHost On

    <Proxy *>
        Require all granted
    </Proxy>

    # Proxy all requests for /app to a backend server
    ProxyPass /app http://backend-app-server:8080/app
    ProxyPassReverse /app http://backend-app-server:8080/app

    # Proxy all requests for the root path / to another backend
    ProxyPass / http://backend-web-server:8000/
    ProxyPassReverse / http://backend-web-server:8000/

    # For SSL/TLS termination at Apache, and forwarding HTTP to backend
    # RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>

Ключові директиви

  • ProxyRequests Off: Це критично важливо. Ця директива вимикає можливості прямого проксі Apache, запобігаючи його використанню як відкритого проксі, що є значним ризиком безпеки. Для зворотного проксі ця директива завжди повинна бути встановлена на Off.
  • ProxyPreserveHost On: Ця директива гарантує, що оригінальний заголовок Host із запиту клієнта передається на сервер бекенду. Якщо встановлено Off, заголовок Host буде встановлено на ім'я хоста та порт сервера бекенду.
  • ProxyPass [path] [url]: Зіставляє локальний шлях URL (path) з URL бекенду (url). Apache перехоплює запити, що відповідають path, і пересилає їх на url.
    • Приклад: ProxyPass /app http://backend-app-server:8080/app означає, що запит до http://yourdomain.com/app/page.html пересилається на http://backend-app-server:8080/app/page.html.
  • ProxyPassReverse [path] [url]: Переписує заголовки Location, Content-Location та URI у відповідях HTTP від сервера бекенду. Це гарантує, що перенаправлення або посилання, згенеровані бекендом, вказують на публічний URL проксі, запобігаючи викриттю клієнтам внутрішніх URL.
  • <Proxy *>: Визначає контроль доступу для самого проксі. Require all granted дозволяє всім клієнтам використовувати проксі. Для посилення безпеки можна дозволити певні IP-адреси або мережі.

Розширені функції mod_proxy

Балансування навантаження

mod_proxy_balancer дозволяє розподіляти вхідні запити між кількома серверами бекенду, підвищуючи доступність та масштабованість.

<VirtualHost *:80>
    ServerName app.yourdomain.com
    ProxyRequests Off
    ProxyPreserveHost On

    <Proxy balancer://mycluster>
        BalancerMember http://backend1.internal:8080 route=1 loadfactor=10
        BalancerMember http://backend2.internal:8080 route=2 loadfactor=10
        # Optional: ProxySet for specific balancer settings
        ProxySet lbmethod=byrequests stickysession=JSESSIONID nofailover=Off
        # For session stickiness, the backend must set a cookie like JSESSIONID
    </Proxy>

    ProxyPass / balancer://mycluster/
    ProxyPassReverse / balancer://mycluster/

    <Location "/balancer-manager">
        SetHandler balancer-manager
        Require ip 192.168.1.0/24 # Restrict access to internal network
    </Location>
</VirtualHost>
Атрибути BalancerMember

| Атрибут | Опис |

Оновлено: 04.03.2026
Назад до категорії

Читайте також

Guides 2 хв

Проксі для Nike SNKRS: купуйте лімітовані релізи та створюйте безліч акаунтів

Використовуйте residential або mobile проксі для Nike SNKRS, щоб брати участь у розіграшах з кількох акаунтів, обходити IP-ліміти та купувати лімітовані дропи без банів. Який тип обрати та як налаштувати GProxy.

Guides 2 хв

Як налаштувати проксі на iPhone (Wi-Fi та SOCKS5)

Налаштуйте проксі на iPhone через стандартні параметри Wi-Fi (HTTP/HTTPS) або додаток для проксі, як-от Shadowrocket, для SOCKS5 та стільникового зв'язку. Покрокове налаштування iOS та обмеження, про які варто знати.

Guides 3 хв

Проксі для Tinder: мультиакаунтинг та уникнення банів

Використовуйте мобільні або резидентські проксі для Tinder, щоб керувати кількома профілями та уникати IP shadowbans. Чому мобільні виграють, як усе налаштувати та чому сам по собі проксі не змінить ваше місто.

Guides 2 хв

Проксі для StockX: моніторинг цін та керування акаунтами

Використовуйте residential, ISP або mobile проксі для StockX, щоб моніторити ціни, керувати кількома акаунтами та купувати дропи без банів. Ось який тип обрати та як налаштувати GProxy.

Guides 3 хв

Проксі для OpenAI API: доступ, ліміти (Rate Limits) та налаштування

Маршрутизуйте OpenAI API через residential або ISP проксі, щоб отримати доступ до підтримуваних регіонів, уникнути 429 rate limits та ізолювати акаунти. Який проксі використовувати плюс приклади налаштування Python.

Guides 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.