Решено: upstream sent too big header while reading response header from upstream, client
Иногда сайт недоступен и вы наблюдаете ошибку 502
Данная ошибка часто связана с тем, что nginx передал данные для apache, а тот не смог с ними справиться.
Но бывает и другое: когда apache работает нормально, и вся проблема с nginx.
Это легко проверить, просто откройте ваш сайт отдельно через порт nginx и отдельно через порт apache.
Если вы увидели, что сайт работает на порту 81 (или 8080 - смотря как настроено у вас), то заходим в логи nginx и смотрим в чем дело:
И так видим:
Исправляется добавлением двух строк в конфиг Nginx, а именно в раздел http:
Ну и рестарт nginx:
Что же такое proxy_buffer_size и proxy_buffers?????????:
proxy_buffer_size - задаёт размер буфера, в который будет читаться первая часть ответа, получаемого от проксируемого сервера. В этой части ответа находится, как правило, небольшой заголовок ответа. По умолчанию размер одного буфера равен размеру страницы памяти. В зависимости от платформы это или 4K, или 8K, однако его можно сделать меньше.
proxy_buffers - задаёт число и размер буферов для одного соединения, в которые будет читаться ответ, получаемый от проксируемого сервера. По умолчанию размер одного буфера равен размеру страницы. В зависимости от платформы это или 4K, или 8K.
А если нормальными словами, то proxy_buffer_size предназначен для хранения, прочтенного с бэкэнда хидера:
То есть, если Вы уже выставили 32к, а ошибка все равно появляется, то нужно тюнить дальше.
Если же просто увеличить 32к до 64к, то можно получить вот такую ошибку:
Итого, если указанных в самом верху настроек мало, корректируем так: