У меня достаточно сложные для описания условия задачи, так что извините за "многабукв".
Имеется сайт (на php) со своим движком, шаблонами и т. д. Отдельно есть раздел документов, в качестве движка которого используется dokuwiki. Нужно чтобы страницы dokuwiki показывались в стиле основного сайта. Dokuwiki, к сожалению, сам по себе не даёт возможности "встроить" себя в другой фреймворк. Дело осложняется тем, что вики выдаёт страницы как по GET так и по POST-запросам. Постоянно поддерживать синхронность шаблонов dokuwiki и основного движка сложно и муторно, поэтому я использую следущий метод:
В конфиге сервера в блоке, отвечающем за dokuwiki, включён SSI, а в самой dokuwiki используется шаблон, который генерирует страницу типа:
...и выдаёт в дизайне основного сайта страницу, в которой в нужных местах стоят блоки:
<!--# include virtual="/no-content" stub="title" --> <!--# include virtual="/no-content" stub="meta" --> <!--# include virtual="/no-content" stub="body" -->
/no-content имеет следующий конфиг: location = /no-content { return 204; }
В результате include заполняются значениями блоков, определённых в основной SSI-странице.
Я знаю, что это выглядит громоздко, но как эту задачу решить по-другому, я не придумал. Зато такая схема позволяет спокойно менять шаблоны основного сайта и быть уверенным, что раздел, работающий на dokuwiki всегда будет отображаться корректно.
Всё это работает на GET-запросах (то есть, при обычном чтении страниц всё нормально). Но, как я писал выше, dokuwiki в процессе работы возвращает страницы и в ответ на POST-запросы (также оформленные через всю эту машинерию). Например, при редактировании wiki-страниц.
И вот тут случается что-то странное. Некоторые (всегда одни и те же) POST-запросы отрабатываются нормально, и выдают правильно оформленные страницы. А некоторые -- отрабатывают, формируют SSI-страницу, но <!--# include virtual="/wiki-template" --> (именно этот инклюд) на ней почему-то выдаёт 502-ю ошибку. В дебаг-логе это выглядит так:
Это единственная разница в логах успешного и неуспешного POST-запроса. В логах php-fpm пусто, до php-обработчика /wiki-template запрос вообще не доходит.
В чём тут может быть дело и в какую сторону тут следует копать?
Прилагаю фрагменты дебаг-лога в районе подзапроса к /wiki-template.