nginx HEAD请求正在更改为GET请求

toiithl6  于 2022-11-02  发布在  Nginx
关注(0)|答案(1)|浏览(243)

晚上好
我正在尝试访问我的Minio服务中的一个文件的statObject,该文件在nginx反向代理之后。
在Java中,它明确地发送了一个HEAD请求,但是当我检查nginx访问日志时,它显示了以下GET请求:

- - [18/Oct/2022:22:01:45 +0000] "GET /clips/5KCgIJCO/thumbnail.png HTTP/2.0" 403 425 "-" "MinIO (Windows 10; amd64) minio-java/8.4.5"
- - [18/Oct/2022:22:01:46 +0000] "GET /clips/5KCgIJCO/thumbnail.png HTTP/2.0" 403 425 "-" "MinIO (Windows 10; amd64) minio-java/8.4.5"
- - [18/Oct/2022:22:01:47 +0000] "GET /clips/5KCgIJCO/thumbnail.png HTTP/2.0" 403 425 "-" "MinIO (Windows 10; amd64) minio-java/8.4.5"
- - [18/Oct/2022:22:01:47 +0000] "GET /clips/5KCgIJCO/thumbnail.png HTTP/2.0" 403 425 "-" "MinIO (Windows 10; amd64) minio-java/8.4.5"
- - [18/Oct/2022:22:01:47 +0000] "GET /clips/5KCgIJCO/thumbnail.png HTTP/2.0" 403 425 "-" "MinIO (Windows 10; amd64) minio-java/8.4.5"

我试着在这篇文章中使用最近的答案,可惜无济于事:https://serverfault.com/questions/530763/nginx-proxy-cache-key-and-head-get-request(类似于以下示例:https://github.com/minio/minio-js/issues/842#issuecomment-810282099)
我还尝试在cloudflare页面规则中设置该高速缓存级别以绕过,这似乎也没有改变什么。
目前,我的代理设置如下:

location / {
        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;
        proxy_set_header Host $http_host;

        proxy_connect_timeout 300;
        proxy_set_header Connection "";
        chunked_transfer_encoding off;

        proxy_cache_convert_head off;
        proxy_cache_methods GET HEAD;
        proxy_cache_key $scheme$request_method$proxy_host$request_uri;

        proxy_pass https://127.0.0.1:9000;
    }

有人知道我可能做错了什么吗?
编辑:当然,在我发布这篇文章的那一刻,我决定尝试在CloudFlare上启用开发模式,这似乎“修复”了这个问题,所以它确实是CloudFlare缓存更改了HEAD -〉GET。
现在我会试着找到一种方法来避免这种情况。

vdzxcuhz

vdzxcuhz1#

这个问题最终是由于CloudFlare的缓存造成的,所以我设法通过创建一个新的缓存规则来解决这个问题,该规则过滤我的MinioAPI的主机名,并将缓存状态设置为“绕过缓存”

相关问题