Я настроил nginx для обхода запросов ajax (ведьма имеют заголовок):
set $accel "0";
if ($http_x_requested_with) {
set $accel "1";
}
proxy_cache_bypass $accel;
Это хорошо работает, но я хочу смочь кэшировать НЕКОТОРЫЕ запросы ajax. И я хочу смочь установить время кэша в PHP. Я пытаюсь использовать X-Accel-Expires для этого, и я пытаюсь переписать обходные настройки, если заголовок X-Accel-Expires представляет.
set $accel "0";
if ($http_x_requested_with) {
set $accel "1";
}
if ($http_x_accel_expires) {
set $accel "0";
}
proxy_cache_bypass $accel;
Но это не работает.... Кажется, что nginx не получает заголовок Apache X-Accel-Expires в переменной $http_x_accel_expires.
X- Заголовок Accel-Expires
- это заголовок ответа, отправляемый PHP, а nginx заполняет только заголовки запроса в переменные $ http
.
Вам следует полностью перенести логику кэширования в PHP. Если вы не хотите кэшировать некоторые ответы от Ajax, вы добавляете X-Accel-Expires: 0
в PHP.
Таким образом, вам не нужно проделывать какие-либо трюки в nginx.