启用 NGINX 代理缓存

启用 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对于启用缓存是必要的?

相关内容