Очень интересная ситуация получается с плагином QueryMonitor.
Установил я сегодня сайт WP(apache) за NGINX (proxy_pass, ssl). Даже статью написал про это WP with Nginx SSL proxypass.
Ну и всё было очень даже хорошо. Но тут произошел странный сбой: стал фильтровать список плагинов по ключевому слову и результатом было молчание. Посмотрел в консоль браузера — пишет ошибку 503 при POST запросе https://www.mysprav.ru/wp-admin/admin-ajax.php.
Начал разбираться. Помогли логи ошибок. Сначала глянул со стороны сервера WP Apache там ответ выглядел как 200. Потом глянул на логи NGINX. И вот тут оказалась проблема.
Оказалось что плагин QueryMonitor подмешивает свои данные(замеры и тд) в специальные хедеры ответа на запрос.
Скорее всего такое поведение связано с тем что запрос был сделан через ajax. Обычный GET запрос страницы — QueryMonitor просто добавляет информация в виде html в body документа. В ajax запросах так не получится сделать поэтому разработчики добавили инфу в хедеры.
Но NGINX со своим proxy_pass не расчитан на такие большие хедеры и поэтому при слишком большом хедере падал и выдавал ошибку.
2022/03/24 19:45:01 [error] 9167#0: *14310 upstream sent too big header while reading response header from upstream, client: 5.143.169.170,...
Решение нашел тут:
https://stackoverflow.com/questions/23844761/upstream-sent-too-big-header-while-reading-response-header-from-upstream
Выбрал подход увеличения размера буфера. Просто добавил эти строчки в начало файла настройки сервера.
http {
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 64k;
...
И всё заработало. 🙂
Как это всё отражается на перформансе сайта пока мне не ясно.