[Location指令]
Location指令是NginxHttpCoreModule中的指令,localtion指令是对url进行匹配,URI即语法中的/uri/,可以是字符串,也可以是表达式,如果是正则表达式,则必须制定前缀。Location根据URL来应用不同的配置,这个指令允许根据不同的URI来应用不同的url配置。
[语法]
Location [=|~|~*|`~|@] uri {
….
}
[ = ] 精确匹配 0
~ 区分大小写 3
~* 不区分大小写 2
^~ 只匹配字符串,不匹配正则表达式 1
匹配顺序
=/XXXX/test.jpg
~* \.jpg$
/XXXX/test.jpg
^~ /XXXX/
/XXXX/
/
相同情况下 正则表达式优先级高
[proxy_pass指令]
Proxy_pass属于ngx_http_proxy_module模块汇总的指令,可以将请求转发给另外一台服务器。
官方说明:This module makesit possible to transfer requests to another server
[用法]
Location / {
Proxy_pass http://localhost/uri/
proxy_redirect off;
proxy_set_header Host $host;#区分主机
#这个参数就是说客户端访问的时候,负载均衡会对RSIP一一对比否则就是访问第一个。
proxy_set_header X-Real-IP $remote_addr;#获取真实地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 获取客户端ip真实地址
#后端的服务器获取用户的主机名或者真实IP,以及代理者的真实IP
}
proxy_set_header:设置由后端服务器获取用户的主机名或真实IP地址,以及代理者的真实IP地址。
负载均衡的一种。
up_stream dynamic {
}
up_stream static {
}
一台动态网站
../dynamic
一台静态网站
../static
在location中加入
if ($http_user_agent ~* "android" ) {
proxy_pass http://dynamic_pools
}
#安卓手机访问web,如果是iphone 则改成iphone,这样就是手机web。
因此使用proxy_pass可以实现动静分离,还能实现移动端跟web端的分离。
本文出自 “停止脚步等于慢性死亡” 博客,请务必保留此出处http://goforward.blog.51cto.com/11169198/1827954
原文地址:http://goforward.blog.51cto.com/11169198/1827954