Это способ кешировать ошибки 502 (Плохой шлюз) и 504 (Время ожидания шлюза) с помощью веб-ускорителя Sakura Cloud.
Частый доступ к контенту, который не может быть кеширован, или, даже если это кешируемый контент, может привести к тому, что исходный сервер будет возвращать 502 (Плохой шлюз) или 504 (Время ожидания шлюза) из-за высокой нагрузки на сервер.
Обычно в ответах об ошибках, таких как в nginx, не добавляется заголовок Cache-Control, поэтому контент не кешируется, и нагрузка на исходный сервер продолжает оставаться высокой.
Поэтому, добавив заголовок Cache-Control к ответам об ошибках в настройках nginx, можно снизить нагрузку на исходный сервер, позволяя веб-ускорителю кешировать ответы об ошибках.
Предполагается использование nginx на стороне источника, а также наличие upstream-сервера приложений.
Настройки nginx
location / {
error_page 502 = @webaccel_handle_504;
error_page 504 = @webaccel_handle_504;
# пропущено
}
location @webaccel_handle_502 {
add_header Cache-Control "s-maxage=30" always;
return 502;
}
location @webaccel_handle_504 {
add_header Cache-Control "s-maxage=30" always;
return 504;
}
С помощью вышеуказанных настроек, когда nginx возвращает ошибку 502 или 504, заголовок Cache-Control с s-maxage=30 будет добавлен, позволяя веб-ускорителю кешировать ответ на 30 секунд.
Это должно снизить нагрузку на исходный сервер, кешируя временные ошибки.
Заметка
- Если необходимо добавить add_header в ответах об ошибках, таких как error_page, требуется добавить always.