重定向后的Nginx反向代理

Vad*_*Vad 5 proxy nginx amazon-s3

我希望Nginx返回实际文件而不是使用Location:重定向标头响应.我使用Nginx作为反向代理缓存:cdn.mydomain.com接收请求和联系人api.mydomain.com/files/从那里获取图像文件,但api.mydomain.com/files/返回带有Location:重定向头的空白响应到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";
        }
}
Run Code Online (Sandbox Code Playgroud)

Ahm*_*udh -1

这样做的所有下载文件的流量都将通过 nginx。

例如,我建议设置单独的 DNS 记录files.mydomain.com并将其指向 Amazon S3 存储桶。这希望从您的域提供服务,但所有流量都将通过亚马逊。

有关设置 DNS 的文档