我想创建一个动态缩略图生成器并通过 nginx 传递所有请求,并使用 try_files 测试文件是否存在。
后备应该是一个外部 URL,我该如何实现呢?
server {
listen 80;
server_name static.stage.domain.example;
location / {
alias /home/fh/static/$1;
try_files $uri $uri/ @bla;
}
location @bla {
proxy_set_header Host http://www.myurl.example?resize=$uri;
}
}
解决方案 这就是我一直在寻找的:(工作示例):
server {
listen 80;
server_name static.example.com;
location / {
root /home/example/static/uploads/thumbnail;
try_files $uri @redirect;
}
location @redirect {
expires 30s;
return 301 https:/example.com/thumbnail$request_uri;
}
}
答案1
URI 是完整 URL 的资源部分,即当前服务器上的资源。try_files
指令中不能引用外部资源。
您需要proxy_pass http://example.com;
在location @bla
配置部分中添加以将请求传递给外部服务。