Назад | Перейти на главную страницу

Настроить публичный обратный прокси-сервер для конкретного сервера

На моем рабочем месте у нас закончились доступные IP-адреса для назначения нашему общедоступному серверу UAT. Из-за этого мы направляем весь трафик на порт 80 на нашем сервере UAT с порта 9999 на IP-адресе другого сервера. В большинстве случаев это работает нормально, но тестирование внешних сервисов, таких как PayPal, становится невозможным, поскольку PayPal удаляет номера портов из URL-адресов обратных вызовов, поэтому наш общедоступный сервер UAT никогда не сможет взаимодействовать с платежными шлюзами.

В качестве обходного пути я предложил следующее:

Купите самый дешевый контейнер Digital Ocean с уникальным IP-адресом.

Направьте все DNS домена UAT на этот контейнер.

Заблокируйте весь трафик, кроме контейнера, с сервера UAT.

Настройте своего рода обратный прокси-сервер для маршрутизации всего трафика из контейнера DO на сервер UAT.

Часть, которую я не знаю, как это сделать, - это часть обратного прокси. Я предполагаю, что мне понадобится Nginx или Varnish. Однако это решение также должно обрабатывать пользовательские сеансы и загрузку файлов, при этом контейнер DO действует ТОЛЬКО как прокси и не хранит эту информацию.

Это возможно? Если да, то как мне это сделать? Я не предпочитаю ОС или программное обеспечение для контейнера DO, поэтому любые предложения приветствуются.

Пожалуйста, не говорите мне, как нам просто получить еще один IP-адрес вместо того, чтобы использовать это длинное решение. Я прекрасно понимаю, что это перебор, однако в настоящее время мы не можем покупать другие блоки IP, поэтому это временная мера, пока это не произойдет.

Обратный прокси - прекрасное решение. Таким образом, у вас могут быть десятки серверов на одном публичном IP-адресе.

Я ничего не знаю о Digital Ocean и вашей среде хостинга, поэтому могу только рекомендовать размещать прокси как можно ближе к серверу приложений, чтобы избежать двойных задержек.

Обратные прокси-серверы хорошо работают в большинстве конфигураций, хотя часто требуют специальной настройки в приложении. Чтобы избежать проблем, полезно сопоставить идентификаторы URI с одинаковыми именами на сервере приложений и прокси (http://proxy.host/uri к http://app.host/uri и нравится). Apache httpd предлагает надежное прокси-решение, проверьте руководство для ProxyPass, ProxyPassReverse, ProxyPreserveHost.