На моем рабочем месте у нас закончились доступные 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
.