Думал на протяжении 16s
Окей, по-человечески и без каши. Короткая шпаргалка, чтоб заработало и не горело.
Что сделать
Взять EU-VPS.
Любой недорогой. Это будет публичный вход.
Поставить на EU-VPS:
WireGuard (или AmneziaWG) + Nginx. Nginx принимает HTTPS, внутри шлёт трафик по туннелю.
Настроить туннель EU ↔ RU.
Приватная подсеть, например: EU 10.8.0.1, RU 10.8.0.2. Работает только по ключам.
Прописать прокси.
Nginx на EU делает proxy_pass
http://10.8.0.2:PORT на твой бэкенд в РФ.
Закрыть RU-сервер снаружи.
Порты сайта/API наружу закрыть. Разрешить только:
UDP порт туннеля
доступ с EU-VPS по приватке 10.8.0.1/24.
DNS на домены.
www. и api. указывают на IP EU-VPS. TTL 60–300 сек.
Клиенты.
Приложения ходят по домену, не по IP. Если есть pinning — пинни SPKI нового сертификата на EU-VPS.
По желанию, но разумно
Вторая нода в ЕС + health-checks для фейловера.
Rate-limit/WAF в Nginx.
Логи/мониторинг, чтобы не чинить «на слух».
Всё. Вход в ЕС, приватный путь в РФ, БД не торчит, пользователи из «заблокированных» стран снова видят сервис.
По мне тут делов на неделю целую, если не шаришь. Пару дней, если шаришь