Примеры сценариев для изменения содержимого запросов
Примеры сценариев для изменения содержимого запросов
Примеры приведены в таблице.
Примеры сценариев для изменения содержимого запросов
if (client.http_req.host:find("abc") and client.remote_p:is_network("192.0.2.0/24")) then client.http_req.header:field_set("XFF", client.remote_p.ip) client.bs = "lb1" client.action = "bs" end | Если имя хоста содержит текст «abc» и запрос пришел из сети 192.0.2.0/24, то добавить заголовок «XFF: <IP-адрес пользователя при подключении>», и перенаправить запрос на Сервер Балансировки «lb1». Результат: WEB -- 03<p>Method GET</p><p>URL on server: /</p><p>REQ Headers: </p>Host: abc.domain.ru User-Agent: curl/7.81.0 Accept: */* XFF: 192.0.2.5 |
function startswith(text, prefix) return text:find(prefix, 1, true) == 1 end if startswith(client.http_req.host, "abc") then client.http_req.header:field_set("Remote-port", client.remote_p.port) client.http_req.header:field_set("XFF", client.remote_p.ip) client.bs = "lb1" client.action = "bs" end | Если имя хоста начинается с «abc», то добавить заголовок «XFF: <IP-адрес пользователя при подключении>» и «Remote-port: <порт-источник на клиенте>», и перенаправить запрос на Сервер Балансировки «lb1» |
if client.http_req.path:find("abc") then if client.http_req.header:field_count("X-Forwarded-For") > 0 then xff, xffip = client.http_req.header:field_get("X-Forwarded-For") client.http_req.header:field_set("X-Forwarded-For", xffip ..", "..client.remote_p.ip) else client.http_req.header:field_set("X-Forwarded-For", client.remote_p.ip) end client.bs = "lb1" client.action = "bs" end | Если:
Перенаправить запрос на Сервер Балансировки «lb1» |
client.http_req.host = client.http_req.host:match("(.*).ru") .. ".local" client.http_req.path = "/external" .. client.http_req.path client.bs = "lb1" client.action = "bs" | Подменить домен «ru» на домен «local» (например, если запрос идет к app.domain.ru, то в сторону Реального Сервера должен прийти app.domain.local). В начале пути запроса добавить «/external» и перенаправить запрос на Сервер Балансировки «lb1» |