Nginx Proxy_pass try_files 放置到位置处理程序
Nginx Proxy_pass try_files drop to location handler
我 运行 与 try_files 和 proxy_pass(或与此相关的别名)相结合。
当前配置:
location /staticsrv {
alias /var/www/static/trunk/;
#proxy_pass http://static.localtest.nl/;
}
location ~ ^/staticsrv/images/gallery/(.*)$ {
try_files $uri @img_proxy;
}
location @img_proxy {
rewrite ^(.*)$ /index.php/?c=media&m=index&imag=$uri;
}
然而,对于每个文件,它都会被丢弃到重写规则,因为它不存在。
是否有 "trick"(阅读正确的配置)来解决我的不幸?还是根本不可能?这两个域最终将位于同一台服务器上,因此我们可以使用别名和 proxy_pass.
提前致谢
您的 location ~ ^/staticsrv/images/gallery/(.*)$
需要一个 root
或一个 alias
来构建本地路径供 try_files
尝试。另外,这里不一定需要正则表达式:
location /staticsrv/images/gallery/ {
alias /var/www/static/trunk/images/gallery/;
try_files $uri @img_proxy;
}
location @img_proxy {
rewrite ^ /index.php/?c=media&m=index&imag=$uri last;
}
proxy_pass
不适用于 try_files
,因为一个处理远程内容,另一个处理本地内容。
由于 this open bug.
,我尽量避免在同一位置块中使用 alias
和 try_files
一种可能的解决方法是使用另一个与文档根目录非常匹配的中间 URI:
location /staticsrv/images/gallery/ {
rewrite ^/staticsrv(.+)$ /trunk last;
}
location /trunk {
internal;
root /var/www/static;
try_files $uri @img_proxy;
}
location @img_proxy {
rewrite ^ /index.php/?c=media&m=index&imag=$uri last;
}
我 运行 与 try_files 和 proxy_pass(或与此相关的别名)相结合。
当前配置:
location /staticsrv {
alias /var/www/static/trunk/;
#proxy_pass http://static.localtest.nl/;
}
location ~ ^/staticsrv/images/gallery/(.*)$ {
try_files $uri @img_proxy;
}
location @img_proxy {
rewrite ^(.*)$ /index.php/?c=media&m=index&imag=$uri;
}
然而,对于每个文件,它都会被丢弃到重写规则,因为它不存在。 是否有 "trick"(阅读正确的配置)来解决我的不幸?还是根本不可能?这两个域最终将位于同一台服务器上,因此我们可以使用别名和 proxy_pass.
提前致谢
您的 location ~ ^/staticsrv/images/gallery/(.*)$
需要一个 root
或一个 alias
来构建本地路径供 try_files
尝试。另外,这里不一定需要正则表达式:
location /staticsrv/images/gallery/ {
alias /var/www/static/trunk/images/gallery/;
try_files $uri @img_proxy;
}
location @img_proxy {
rewrite ^ /index.php/?c=media&m=index&imag=$uri last;
}
proxy_pass
不适用于 try_files
,因为一个处理远程内容,另一个处理本地内容。
由于 this open bug.
,我尽量避免在同一位置块中使用alias
和 try_files
一种可能的解决方法是使用另一个与文档根目录非常匹配的中间 URI:
location /staticsrv/images/gallery/ {
rewrite ^/staticsrv(.+)$ /trunk last;
}
location /trunk {
internal;
root /var/www/static;
try_files $uri @img_proxy;
}
location @img_proxy {
rewrite ^ /index.php/?c=media&m=index&imag=$uri last;
}