Skip to content

Lightweight regional edge proxy for bypassing connectivity issues

Notifications You must be signed in to change notification settings

hlds-run/reverse-edge-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reverse Edge Proxy — это промежуточный сервер на границе сети (edge), который принимает входящие запросы пользователей и перенаправляет их к основному серверу (origin). Такой прокси используется для улучшения доступности сервиса, обхода региональных сетевых ограничений, снижения задержек и организации резервного или регионального маршрута доступа без изменения основной инфраструктуры.

Edge Proxy (nginx)

Региональный edge-прокси на базе nginx, предназначенный для обеспечения доступа к основному сайту через альтернативную точку входа (RU-proxy), когда прямой доступ к Cloudflare или origin нестабилен или недоступен для части пользователей.

Проект ориентирован на:

  • минимальный бюджет
  • слабые VPS
  • простоту деплоя и масштабирования

Задача, которую решает

  • hlds.run
    Основной домен, работает через Cloudflare (CDN / защита / кеш)

  • ru.hlds.run
    Региональная входная точка (Россия), НЕ проксируется Cloudflare, а указывает напрямую на VPS с nginx, который имеет доступ к hlds.run без ограничений

Схема:

flowchart LR
    %% ======================================
    %% Multi RU Edge Proxy Architecture
    %% ======================================

    user_ru([👤 Пользователь<br/>Россия])
    user_global([👤 Пользователь<br/>Вне РФ])

    dns_cf[[🌐 Cloudflare DNS]]
    cf_cdn[[☁️ Cloudflare CDN<br/>+ WAF + Cache]]

    ru1[[🖥️ RU VPS #1<br/>nginx edge-proxy]]
    ru2[[🖥️ RU VPS #2<br/>nginx edge-proxy]]
    ru3[[🖥️ RU VPS #3<br/>nginx edge-proxy]]

    origin[[🗄️ Origin / hlds.run]]

    %% Global users
    user_global -->|https://hlds.run| dns_cf
    dns_cf --> cf_cdn
    cf_cdn --> origin

    %% RU users
    user_ru -->|https://ru.hlds.run| dns_cf
    dns_cf -->|DNS round-robin| ru1
    dns_cf -->|DNS round-robin| ru2
    dns_cf -->|DNS round-robin| ru3

    ru1 -->|HTTPS proxy| cf_cdn
    ru2 -->|HTTPS proxy| cf_cdn
    ru3 -->|HTTPS proxy| cf_cdn

    %% Styling
    classDef user fill:#eef,stroke:#333,stroke-width:1px;
    classDef cf fill:#fff3cd,stroke:#f38020,stroke-width:1.5px;
    classDef proxy fill:#e8f5e9,stroke:#2e7d32,stroke-width:1.5px;
    classDef origin fill:#e3f2fd,stroke:#1565c0,stroke-width:1.5px;

    class user_ru,user_global user;
    class dns_cf,cf_cdn cf;
    class ru1,ru2,ru3 proxy;
    class origin origin;
Loading

Таким образом:

  • пользователи, у которых есть проблемы с доступом к CF, попадают на сайт
  • Cloudflare остаётся origin / CDN
  • edge-прокси не хранит данные и легко заменяется

Как это работает технически

  • Используется официальный nginx:alpine
  • Конфигурация nginx собирается из шаблонов (/etc/nginx/templates)
  • Переменные подставляются через environment:
    • ORIGIN_NAME — основной домен (hlds.run)
  • HTTPS обязателен (из-за HSTS на основном домене)
  • Сертификаты скопированы с origin / Cloudflare Origin Cert

Быстрый запуск

docker compose up -d

Настройки DNS-records (важно)

Cloudflare

  • ru.hlds.run

    • A-record → IP RU VPS
    • Proxy OFF (DNS only)
  • hlds.run

    • как и раньше, через Cloudflare (Proxy ON)

Масштабирование

В любой момент можно:

  • скопировать проект;
  • поднять ещё одну VPS;
  • добавить DNS-запись;

Без миграций и state.

Ограничения и компромиссы

  • RU-proxy — bottleneck (1 VPS);
  • Нет DDoS-защиты на edge;
  • Нет глобального балансинга;
  • HTTPS обязателен (HSTS);
  • Нет кеширования на edge.

Это осознанные компромиссы ради цены и простоты.

About

Lightweight regional edge proxy for bypassing connectivity issues

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published