proxy_redirect参数的作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了proxy_redirect参数的作用相关的知识,希望对你有一定的参考价值。
nginx的代理功能太完善了,我们看看proxy_redirect参数的作用。 案例说明: 要做一个html.aslibra.com的域名处理很多网站的html内容,当然是后端的服务器了,目录分析 html.zcom.com/img.aslibra.com/ html.zcom.com/css.aslibra.com/ 访问的域名是该目录下的域名,那前端nginx的配置应该类似这样: server { server_name img.aslibra.com; location / { rewrite ^(.*) /$http_host$1 break; proxy_set_header Host html.aslibra.com; proxy_pass http://cache-89; } } 但这样访问目录时如果没有以“/”结尾,则服务器会返回301redirect: [[email protected] ~]# curl -I http://img.aslibra.com/www HTTP/1.1 301 Moved Permanently Server: nginx/0.7.59 Date: Tue, 21 Jul 2009 15:28:58 GMT Connection: keep-alive Location: http://html.aslibra.com/img.aslibra.com/www/ html.aslibra.com这个域名并非公布的域名,返回给客户端是会自然产生错误的 Nginx可以很好的处理这个问题: server { server_name img.aslibra.com; location / { rewrite ^(.*) /$http_host$1 break; proxy_set_header Host html.aslibra.com; proxy_pass http://cache-89; proxy_redirect http://html.aslibra.com/img.aslibra.com/ /; } } 加一行proxy_redirect后,正常了: [[email protected] ~]# curl -I http://img.aslibra.com/www HTTP/1.1 301 Moved Permanently Server: nginx/0.7.59 Date: Tue, 21 Jul 2009 15:23:49 GMT Content-Type: text/html Location: http://img.aslibra.com/www/ Connection: keep-alive Content-Length: 185 Expires: Tue, 21 Jul 2009 16:23:49 GMT Cache-Control: max-age=3600 就这么样就ok啦~ 不过貌似不支持变量出现在地址里,这个就郁闷了,必须指定相应域名。 对于多个域名匹配的server,redirect设置不能写作’/‘了,否则会用第一个域名作为redirect域名 可以写几个匹配规则: proxy_redirect http://html.aslibra.com/img.aslibra.com/ http://img.aslibra.com/; proxy_redirect http://html.aslibra.com/css.aslibra.com/ http://css.aslibra.com/;
以上是关于proxy_redirect参数的作用的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 自定义代码片段在方法定义的参数列表中不起作用
modx - 当我在同上片段中使用“&documents =”参数时,分页不起作用