У меня есть плохо работающее веб-приложение, которое будет масштабно масштабировано, чтобы справиться с массой Интернета.
Haproxy будет использоваться для отправки веб-запросов без сохранения состояния на многие серверы. Однако по-прежнему существует ограничение на трафик, который может прийти, и я хотел бы отдать приоритет подлинным пользователям.
Можно ли настроить haproxy для отправки трафика с определенного URL-адреса реферера в конкретный ящик?
Например. если в новостной статье упоминается шлюз развертывания, я могу перенаправить трафик из этой статьи на быстрый статический HTML-сайт, говоря что-то вроде «спасибо за интерес, вот некоторая информация»?
Если это возможно, возможно, кто-то сможет поделиться соответствующим фрагментом из файла конфигурации.
Да, оно может. Из документация,
hdr_dir
hdr_dir (заголовок)
Возвращает true, если один из заголовков содержит одну из строк, изолированную или разделенную косой чертой. Это используется для выполнения сопоставления имени файла или каталога и может использоваться с Referer. См. «Hdr» для получения дополнительной информации о сопоставлении заголовков.
Таким образом, вы можете проверить hdr_dir (referer), чтобы узнать, соответствует ли он определенному пути, и если это так, установить флаг, а затем отправлять трафик в различные места назначения на основе этого флага.
acl slashdot hdr_dir(referer) -i /some/path
use_backend cluster1 if slashdot
use backend cluster2 if !slashdot
backend cluster1
server servera 192.168.0.50:80
backend cluster2
server serverb 192.168.0.51:80
Не проверено.
Я наткнулся эта почта, в котором говорится об использовании такой настройки:
acl invalid_referer hdr_sub(referer) -i -f /etc/haproxy/banned.haproxy.conf
block if invalid_referer
Он должен возвращать 403 блоку реферального трафика. Вы должны иметь возможность вносить изменения в конфигурацию, чтобы обрабатывать трафик по-другому (т.е. переходить на другую поддержку)