В большинстве конфигураций и примеров, которые я видел, внутренний сервер находится либо на том же компьютере, либо в одной сети. Делал ли кто-нибудь это с внутренними серверами, расположенными в другом физическом месте через глобальную сеть? Если да, то каким был ваш опыт?
Возможно, вам придется настроить свой proxy_connect_timeout
и proxy_read_timeout
. Помните, что время ожидания подключения не может превышать 75 секунд, поэтому, если ваши серверные ВМ работают очень медленно, это может не сработать.
В настоящее время я делаю это с тремя узлами nginx через циклический DNS для стороннего решения для показа рекламы. Нам нужно было обойти несколько ограничений для крайних пользователей, и прокси казался лучшим выбором. Поскольку наши рекламные запросы очень малы, а решение, к которому мы подключаемся, очень надежное, мы не заметили большого замедления по сравнению с обычным запросом. Coredump верен, хотя требуется некоторая настройка параметров прокси, чтобы запросы не зависали слишком долго.
Если вы хотите сбалансировать нагрузку в разных географических точках, есть более эффективные способы сделать это, например, такие услуги, как 3 толпа. Использование прокси-сервера верхнего уровня просто замедлит работу, вы должны отправлять своих пользователей непосредственно на ресурс, а не передавать его обратно через Nginx.
Вы, вероятно, получите плохую производительность, поскольку соединения всегда будут проходить через ваш обратный прокси-сервер к удаленному серверу и обратно. Как упоминалось в coredump, вам, вероятно, потребуется настроить параметры прокси, чтобы избежать тайм-аутов. Разве нельзя разместить обратный прокси-сервер в той же сети, что и ваш бэкэнд?