Вопрос: Nginx обратный кеш 301 перенаправляет (постоянный)


Возможно ли кэширование Nginx 301 перенаправлять запросы на proxy_pass?

Например:

Запрос № 1: Клиент A request / some / path -> отправлен proxy_pass -> приводит к переадресации 301 /some/other/path -> nginx кэширует этот ответ, поскольку он перенаправляет 301.

Запрос №2: запросы клиента B / some / path -> nginx возвращает кешированный 301 редирект /some/other/path,


7
2017-09-06 00:09


Источник




Ответы:


nginx уже может кэшировать 301 переадресацию. Вы можете изменить время, в течение которого они кэшируются с помощью proxy_cache_valid директива:

proxy_cache_valid 301 365d; # Cache permanent redirects for a whole year

8
2017-09-08 15:26





Я обнаружил, что ответ Майкла дал мне большую часть пути, но когда я включил proxy_cache, он будет автоматически кэшировать файлы с помощью Expires а также Cache-Control, Таким образом, я закончил с этим решением.

proxy_cache_path /tmp/nginx levels=1:2 keys_zone=main-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /tmp/nginx/tmp;
proxy_cache main-cache;
proxy_cache_valid 301 60m;
proxy_cache_key "$scheme://$host$request_uri";
proxy_ignore_headers X-Accel-Expires Expires Cache-Control;

4
2017-09-09 17:02



Вот что такое кеш делает, Нигде вы никогда не упоминали, что вы не хотели, чтобы что-то еще было кешировано. - Michael Hampton♦


Если вы хотите перенаправить все, вы можете использовать этот способ:

location / {
  proxy_pass http://127.0.0.1:8080/VirtualHostBase/https/$server_name:443/some/path/VirtualHostRoot;
}

Вашим примерам может потребоваться сочетание rewrite а также proxy_pass:

location / {
  rewrite ^(.*)$ /VirtualHostBase/https/$server_name:443/some/path/VirtualHostRoot$1 break;
  proxy_pass http://127.0.0.1:8080;
}

Предупреждение: у вас есть другое переписывание redirect эффект: break возвращает 301 вместо permanent возвращает 302.

РЕДАКТИРОВАТЬ Перед этим модулем / ов вам нужно использовать proxy_cache_valid diretive:

proxy_cache_valid  301 1h;

Предупреждение, директивы, связанные с кэшем, имеют приоритет над значением proxy_cache_valid, в частности, порядок:

  1. X-Accel-Истекает
  2. Истекает / Cache-Control
  3. proxy_cache_valid

Справка: HttpProxyModule, Обратный прокси Nginx + переписывание URL


-1
2017-09-08 15:20