Назад | Перейти на главную страницу

Включить кеширование для прокси NGINX

Я пытался следовать этот учебник кэшировать запросы против yt3.ggpht.com.

Моя конфигурация выглядит так:

proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";

server {
    listen 80 default_server;

    location / {
        proxy_cache my_zone;
        add_header X-Proxy-Cache $upstream_cache_status;

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        include proxy_params;
        proxy_pass https://yt3.ggpht.com;
    }
}

Если я запустил ссылку на моем локальном сервере, yt3.ggpht.com вернет:

Запрошенный URL /-C9gaunpPNo8/VYGWj4xT-uI/AAAAAAAAAGo/pUPfpvLF7Dc/w2120-fcrop64=1-nd-c0xffffffff-rj-k-no/ не был найден на этом сервере. Это все, что мы знаем.

Если я удалю proxy_set_header Host $http_host; строки мои запросы проходят, но кеширование не работает.

Почему не работает, если я поставил Host (Это происходит, если я запускаю запросы к другому удаленному серверу dummy-ngnix).

А также, почему параметр Host необходимо включить кеширование?