如何为RESTAPI正确配置Nginx缓存?

如何为RESTAPI正确配置Nginx缓存?,nginx,caching,nginx-config,Nginx,Caching,Nginx Config,案例: 我有通过HTTPS的RESTAPI,我想在我的主机上配置一个基本的缓存代理服务来缓存API请求,并像往常一样更快地获得相同的信息 我有Nginx的以下配置: proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; http { server { location /my_ap

案例: 我有通过HTTPS的RESTAPI,我想在我的主机上配置一个基本的缓存代理服务来缓存API请求,并像往常一样更快地获得相同的信息

我有Nginx的以下配置:

proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=10g
                 inactive=60m use_temp_path=off;
http {
    server {
        location /my_api/ {
            proxy_redirect off;
            proxy_buffering on;

            proxy_ignore_headers X-Accel-Expires;
            proxy_ignore_headers Expires;
            proxy_ignore_headers Cache-Control;

            proxy_cache my_cache;

            proxy_pass https://example.com/myapi/;
        }
    }
}
现在我比较了REST API和我的本地代理服务的响应时间,REST API调用远程服务和本地代理服务的响应时间是一样的,这意味着缓存不起作用。 此外,缓存目录为空

对真实API的示例或请求(这不是真实情况):

请求代理的示例:

    curl "http://127.0.0.1:8080/myapi/?key=1"
在RESTAPI标题中,我可以看到

cache-control: max-age=0, no-cache, no-store, must-revalidate
Nginx可以忽略它吗

我应该在代理配置中更改什么才能看到RESTAPI的增强?
我想知道这个问题是否与HTTPS流量有关?或者来自REST API的响应有一些NoChaching头,或者响应的大小太小,无法缓存?

终于找到了为我的REST API配置缓存的方法,以下是最终配置:

http {
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m;

    server {
        listen       8080;
        server_name  localhost;

        location /myapi {
            proxy_buffering on;

            proxy_ignore_headers Expires Cache-Control X-Accel-Expires;
            proxy_ignore_headers Set-Cookie;

            proxy_cache my_cache;
            proxy_cache_valid 24h;
            proxy_pass https://example.com/myapi;
    }

}

同样的问题没有答案
http {
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m;

    server {
        listen       8080;
        server_name  localhost;

        location /myapi {
            proxy_buffering on;

            proxy_ignore_headers Expires Cache-Control X-Accel-Expires;
            proxy_ignore_headers Set-Cookie;

            proxy_cache my_cache;
            proxy_cache_valid 24h;
            proxy_pass https://example.com/myapi;
    }

}