Всем привет.
Модуль 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, как инструмента с недостающим функционалом для моей задачи. (это ужасно - слишком много конфигов придется конвертировать, включая генераторы конфигов).
Что посоветуете?
Владимир