我希望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";
}
}
答案 0 :(得分:0)
我有同样的需求,我找不到任何可行的解决方案,所以我将从Nginx mailing lists和Nginx文档中学到的东西结合起来:
var x = document.getElementsById(id);
//x[i]
var i;
for (i = 0; i < x.length; i++) {
var n = i++;
var converter1 = Markdown.getSanitizingConverter();
var CODESOFTLAB = new Markdown.Converter(converter1);
var before = document.getElementById("replybefore"+n).value;
var MarckDowPreviewHtml = CODESOFTLAB.makeHtml(before);
document.getElementById("replyJail"+n).innerHTML = MarckDowPreviewHtml;
var a = 10;
}
P.S。我已经注释掉了与我的用例相关的proxy_cache选项,但您仍然可以发现它们很有用。
答案 1 :(得分:-1)
执行下载文件的所有流量都将通过nginx。
我建议设置单独的DNS记录,例如files.mydomain.com
,并将其指向Amazon S3存储桶。这可以从您的域中提供,但所有流量都将通过亚马逊。