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