2013-07-19 2 views
1

У меня есть обратная прокси-установка с nginx на centos 6. Я ищу одну из своих страниц и отображаю различные номера телефонов в зависимости от того, на какую рекламу нажимают.Найти и заменить с помощью настройки прокси-сервера Nginx

Я пытался использовать http_sub_module, хотя у меня нет четкого представления о том, как найти с ним замену.

Пример

http://mysite.com имеет (111) 123-4567

Я хотел бы иметь обратный прокси-сервер сделать поиск по вышеуказанному номеру и заменить (222) 765-321

Спасибо!

ответ

1

Это не идеальный вариант, так как источник должен быть переписан, но вы можете использовать sub_filter для перезаписи содержимого ответов для проксированных запросов. С вашего примера это будет:

location /something { 
    ... 

    sub_filter '(111) 123-4567' '(222) 765-321'; 
    sub_filter_once off; 
} 

поведение по умолчанию это заменить один раз (я отключил в данном примере) и применить только изменения HTML-страниц (это на основе мим типов ответ). Это подходит для использования в обратном прокси, поскольку он может заменить заголовок Location параметрами по умолчанию и ссылки при отключении опции sub_filter_once.

Хотя этот модуль недоступен, если только явным образом не сконфигурирован во время компиляции, мой опыт заключается в том, что любой пакетный менеджер, установленный nginx, включил этот параметр.

Подробнее об этом можно узнать здесь here.