gpt4 book ai didi

重定向后的 Nginx 反向代理

转载 作者:行者123 更新时间:2023-12-03 17:49:10 25 4
gpt4 key购买 nike

我希望 Nginx 返回实际文件而不是响应 Location:重定向头。我使用 Nginx 作为反向代理缓存:cdn.mydomain.com收到请求并联系 api.mydomain.com/files/从那里获取图像文件,但是 api.mydomain.com/files/返回一个空白响应 Location:将 header 重定向到 AWS S3,而不是文件本身。

因此,Nginx 缓存空白重定向响应。如何让 Nginx 从 S3 获取和缓存实际文件。

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

http {
server_names_hash_bucket_size 64;
proxy_redirect off;

proxy_cache_path /var/cache/nginx levels=2:2:2 keys_zone=my-cache:8m max_size=4G inactive=600m;
proxy_temp_path /var/cache/tmp;

server {
listen 80;
server_name cdn.mydomain.com;
server_tokens off;
location / {
proxy_pass http://api.mydomain.com/files/;

proxy_cache my-cache;
proxy_cache_valid 200 302 30d;
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
}

最佳答案

我有同样的需求,但找不到任何可行的解决方案,所以我结合了从 Nginx mailing lists 学到的知识和 Nginx 文档:

proxy_cache_path /tmp/docker/nginx/cache levels=1:2 keys_zone=DOCKERHUB:10m inactive=24h max_size=8g;

server {
...

location /v2/ {
proxy_pass https://registry-1.docker.io;
proxy_cache DOCKERHUB;
#proxy_cache_valid 200 1d;
#proxy_cache_use_stale error timeout invalid_header updating
# http_500 http_502 http_503 http_504;
#proxy_cache_lock on;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirect;
}

location @handle_redirect {
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
proxy_cache DOCKERHUB;
#proxy_cache_valid 200 1d;
#proxy_cache_use_stale error timeout invalid_header updating
# http_500 http_502 http_503 http_504;
#proxy_cache_key $scheme$proxy_host$uri;
#proxy_cache_lock on;
}
}

附言我已经注释掉了与我的用例相关的 proxy_cache 选项,但您可能仍然会发现它们很有用。

关于重定向后的 Nginx 反向代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25393357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com