Nginx配置之rewrite、proxy_pass、upstream、location

如图,这是Nginx的配置文件nginx.conf中的一段配置代码。nginx

在http段中定义了一个名为webservers的upstream模块,主要用于负载均衡。web

在server模块中,定义了一个location模块,名为"/",意为最低优先级的URL匹配。在该location模块中,将proxy_pass设置为http://webservers,即指定了咱们刚才定义的upstream模块。正则表达式

下面有一个if判断,$request_uri能够获取表示请求的uri这一全局变量,~表示区分大小写的匹配。浏览器

rewrite用于重写URL,其后面的这一长串用蓝色下划线标出的字符串分为两个部分,第一部分是$以及$以前的部分,即^/MonkeyServlet/([0-9]+)/(.+)$,是一个URI正则表达式,用于匹配请求的URL,即原始的URL;而$后面的部分,即/monkey/MonkeyServlet?id=$1&name=$2? permanent,表示重写后的URL。$1表明第一部分中第一个正则表达式匹配的内容,即([0-9]+)匹配的内容,$2表明第一部分中第二个正则表达式匹配的内容,即(.+)匹配的内容。负载均衡

例如:咱们浏览器地址栏中请求地址为http://localhost/MonkeyServlet/21212/James,重写后会变为http://localhost/monkey/MonkeyServlet?id=21212&name=James。server

刚刚接触Nginx,好多不懂的地方,欢迎各位批评指正。若转载请标明出处,谢谢~~  blog

相关文章
相关标签/搜索