без злых планов я пытаюсь зеркалировать сайт под другим доменом, меняя несколько строк на лету.
Я установил 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 и проксировать запрос через них.