У меня есть несколько внутренних веб-серверов с балансировкой нагрузки с помощью LVS. На этих машинах есть только внутренние немаршрутизируемые IP-адреса. Балансировщик нагрузки - единственная машина с внешним IP-адресом. Эта установка отлично работает. Я хотел бы добавить еще один веб-сервер для обслуживания изображений, но он не будет частью пула с балансировкой нагрузки. Можно ли передать прокси-сервер с веб-серверов с балансировкой нагрузки на сервер изображений и перенаправить ответ клиенту?
Клиент -> внешний LB -> внутренний веб-сервер -> внутренний сервер изображений
У меня работает прокси-пропуск, когда я удаляю LB из уравнения, но не повезло при попытке его использовать.
Вместо LVS вы можете попробовать HAproxy. В режиме http он распознает такие заголовки, как «Host», которые обрабатывают доменное имя. Таким образом вы можете проксировать статические файлы напрямую на «внутренний сервер изображений».
Другой способ - запросить другой внешний IP-адрес и запустить две копии LVS с разной конфигурацией - одну для динамических, другую для статических файлов, которые привязываются к разным внешним IP.
Что вы этим пытаетесь получить? Nginx уже очень хорошо обслуживает статические носители и очень хорошо кэширует эти носители. Создание прокси-подключений (через исходные веб-серверы) к серверу статического содержимого просто кажется избыточным (плохой вид) и добавляет накладные расходы сети, поскольку для доставки трафика придется возвращаться через сервер nginx.
Поскольку трафик в любом случае проходит через LVS-бокс (en), почему бы ему не направить трафик напрямую на сервер изображений, на который ссылается другое доменное имя, как сказано на вышеупомянутых плакатах.
Если вам действительно не нужна дополнительная ссылка на домен (вы должны учитывать это, это ускоряет работу вашего сайта со стороны пользователя), пусть LVS отправляет трафик для / images непосредственно на сервер изображений, он может выполнять маршрутизацию Layer7.
Суть в том, что если вы пытаетесь снять нагрузку с веб-серверов, вам следует фактически снять нагрузку с веб-серверов. Проксирование может сэкономить вам дисковое пространство на этих машинах, но не более того, поскольку им по-прежнему приходится обрабатывать запросы и передавать трафик.
я бы получил новый внешний IP-адрес для сервера, который должен размещать изображения и связывать ссылки с изображениями внутри http://img.yourdomain.com/ поэтому я не буду усложнять существующую архитектуру. В противном случае я вижу, что у них есть KTCPVS: http://kb.linuxvirtualserver.org/wiki/KTCPVS_HTTP который должен поддерживать маршрутизацию по шаблону URL.