Назад | Перейти на главную страницу

несколько правил sub_filter для обратного прокси на nginx?

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

Я установил nginx на новом хосте, чтобы он служил RP для главного сайта. Это позволяет установить одно правило замены:

sub_filter      Originalstring  'new string';
sub_filter_once off;

Однако я бы хотел, чтобы работало несколько правил, которые sub_filter допускает только один для каждого местоположения.

Какое здесь решение, если оно есть?

В отличие от предыдущей, текущая версия nginx позволяет создавать несколько правил подфильтра в одной директиве location. Вот так

location / {
   resolver   8.8.8.8;
   proxy_pass http://original-domain.com;
   proxy_set_header Accept-Encoding "";
   proxy_set_header Host original-domain.com;

   subs_filter_types text/css text/xml text/css;
   subs_filter a.original-domain.com b.mydomain.com;
   subs_filter http://$host https://$host;
}

Вы можете добавить до 255 фильтров. Видеть http://wiki.nginx.org/HttpSubsModule

Убедитесь, что у вас есть subs_filter установлен с nginx, выполнив эту команду nginx -V. Искать --with-http_sub_module на выходе.

Проверьте HttpSubsModule модуль вместо этого. Выдержка из документации:

Можно указать несколько правил замены для каждого местоположения

теперь вы можете обновить nginx до 1.9.4

*) Feature: multiple "sub_filter" directives can be used simultaneously.

см. полный журнал изменений здесь: http://nginx.org/en/CHANGES

Я думаю, вы можете настроить несколько местоположений или server_names одним sub_filter per earch и проксировать запрос через них.