надо несколько sub filter в одном Location

vgoncharov nginx-forum на nginx.us
Пт Мар 16 21:32:12 UTC 2012


Всем привет.

Модуль substitution позволяет только один
фильр на location.

У меня backend не понимает https. Для
обеспечения https (и не только)
испольозуется nginx.

В некоторых страницах генерируемых
бакендом мне надо три фильтра, которые
заменяют http:// на https://. Я не могу менять
все подряд http на https. Только три фильтра
надо использовать
sub_filter XMLFile=http://www.mydomen.com/
XMLFile=https://www.mydomen.com/;
sub_filter http://download.macromedia.com/
https://download.macromedia.com/;
sub_filter http://www.mydomen.com:8080/  https://www.mydomen.com/;

Модуль официальный модуль substitution не
позволяет три sub_filter в одном location. Очень
непонятное ограничение.

Есть addon-модуль substitutions. Версии старше 0.4
то вешали nginx, то просто обрезали
страницу, если она больше пары десятков
килобайт (при использовании gzip on).

Начиная с версии nginx/1.0.12 (или 1.0.11) nginx
перестал собираться с substitutions 0.4 и я
должен был его заменить на substitutions 0.5.2
revision 53 (он его через svn только раздает).

Я написал автору багрепорт, выслал
конфиги при которых ng и substitutions глючит и
ошибка повторяется. Выслал свой debug log.

Автор substitutions подкрутил свой код и
большие страницы стали отдаваться
целиком. Но через пару часов работы
пользователи стали жаловаться, что
периодически они получают пустые
страницы. Проверил путем нажатия f5 -
действительно, иногда nginx отдавал
урезанные или совсем пустые страницы.

После сообщенияавтору он все изменения
в svn откатил обратно и все. Больше он
сделать ничего не смог.

Таким образом я больше не могу
обновлять nginx, так как работающая
версия substitutions с новыми стабильными
версиями nginx не совместима, а новая
версия не работает с gzip on.

У меня остается мало выбора:
1) Надеятся, что Игорь Сысоев допишет
модуль substitution, чтобы я мог писать
несколько sub_filter в одном location.
2) Найти какой-то другой способ менять
мои строки с http на https. Но не с perl-модулем
- он мне кажется слишком большим
монстром для такой простой задачи.
3) Отказаться от nginx, как инструмента с
недостающим функционалом для моей
задачи. (это ужасно - слишком много
конфигов придется конвертировать,
включая генераторы конфигов).

Что посоветуете?

Владимир

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,223980,223980#msg-223980



Подробная информация о списке рассылки nginx-ru