Как кешировать ошибки 502 и 504 с помощью веб-ускорителя

Это способ кешировать ошибки 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.