nginx利用反向代理重定向图片目录到其他域名下,另外还有一个proxy_pass 的解析坑说明
[ 2018-06-21 11:10:58 | 作者: admin ]
p.s. 将网站下面的图片重定向到其他域名,这样做的目的是图片数量过多,又在大数据的文章中不方便直接替换成其他域名,只能退而求其次,图片目录的反向代理能解决这个问题,虽然也不是好方法。
需要注意的是:proxy_pass 指定域名解析的ip会在nginx启动时解析,所以一旦域名重新解析了,需要把nginx reload下,不然不会生效
用户访问效果如下
http://www.domain.com/pics/a.jpg
实际访问路径为
http://pics.domain.com/pics/a.jpg //可以看到目录和文件是自动加上去的,不要proxy_pass再添加一个目录,不然就直接访问这个目录了
参考文章:https://blog.csdn.net/xiaoxiangzi520/article/details/78737527
反向代理proxy_pass的语法结构为proxy_pass URL,其中,URL为要设置的被代理服务器的地址,包含传输协议、主机名称或IP地址加端口号、URI等要素。
例如:proxy_pass http://www.myweb.com/uri;
1. 如果被代理服务器是一组服务器的话,可以使用upstream指令配置后端服务器组。
upstream proxy_svrs
{
server http://192.168.0.1/uri;
server http://192.168.0.2/uri;
}
server块:
注意:如果组内的各个服务器都指明了传输协议 http:// ,那么在proxy_pass 指令中就不用指明了。反之也是如此。
2.另外,还要注意proxy_pass URL ,URL中是否含有URI,如果不包含,nginx服务器不会改变原地址的URI;如果包含了URI,则nginx服务器会使用新的URI替换原来的URI。
例如:
如果客户端请求http://10.66.30.223/api/exam,请求被该location块处理,由于proxy_pass指令的URL中不含URI,所以转向地址http://10.66.30.233:8080/api/exam。
再来看下面的配置:
在此示例中,由于proxy_pass URL中包含了URI "/loc",如果客户端发出http://www.myweb.com/server,nginx服务器会把地址转向 http://192.168.1.1/loc 。
总结:在使用proxy_pass指令时,如果不想改变原地址中的URI,就不要在URL变量中配置URI。
需要注意的是:proxy_pass 指定域名解析的ip会在nginx启动时解析,所以一旦域名重新解析了,需要把nginx reload下,不然不会生效
用户访问效果如下
http://www.domain.com/pics/a.jpg
实际访问路径为
http://pics.domain.com/pics/a.jpg //可以看到目录和文件是自动加上去的,不要proxy_pass再添加一个目录,不然就直接访问这个目录了
参考文章:https://blog.csdn.net/xiaoxiangzi520/article/details/78737527
反向代理proxy_pass的语法结构为proxy_pass URL,其中,URL为要设置的被代理服务器的地址,包含传输协议、主机名称或IP地址加端口号、URI等要素。
例如:proxy_pass http://www.myweb.com/uri;
1. 如果被代理服务器是一组服务器的话,可以使用upstream指令配置后端服务器组。
upstream proxy_svrs
{
server http://192.168.0.1/uri;
server http://192.168.0.2/uri;
}
server块:
server
{
listen 80;
server_name localhost;
location /
{
proxy_pass proxy_svrs;
}
}
{
listen 80;
server_name localhost;
location /
{
proxy_pass proxy_svrs;
}
}
注意:如果组内的各个服务器都指明了传输协议 http:// ,那么在proxy_pass 指令中就不用指明了。反之也是如此。
2.另外,还要注意proxy_pass URL ,URL中是否含有URI,如果不包含,nginx服务器不会改变原地址的URI;如果包含了URI,则nginx服务器会使用新的URI替换原来的URI。
例如:
如果客户端请求http://10.66.30.223/api/exam,请求被该location块处理,由于proxy_pass指令的URL中不含URI,所以转向地址http://10.66.30.233:8080/api/exam。
再来看下面的配置:
在此示例中,由于proxy_pass URL中包含了URI "/loc",如果客户端发出http://www.myweb.com/server,nginx服务器会把地址转向 http://192.168.1.1/loc 。
总结:在使用proxy_pass指令时,如果不想改变原地址中的URI,就不要在URL变量中配置URI。
[最后修改由 admin, 于 2018-06-21 11:31:33]
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2505
这篇日志没有评论。
此日志不可发表评论。