Nginx的配置

nginx帮助文档

http://nginx.org/en/docs/http/ngx_http_proxy_module.html

1      upstream流量七层均衡代理模块

http://www.linuxidc.com/Linux/2015-03/115207.htm

http://blog.csdn.net/knuuy/article/details/46660203

 

1.1    upstream策略定义

是用于上行(客户访问服务器)的策略定义。策略包括到达哪些后端服务器,以什么样的方式在这些后端服务器实现均衡。

upstream策略有以下几种类型。

1.1.1  权重轮询策略

upstream webCam {//weight(权重)轮询机制

                server 7.7.7.7:8080weight=2;

                server 8.8.8.8:8080weight=2;

       }

 

1.1.2  源IP HASH策略

upstreamfavresin{ //通过源IP进行HASH的机制。可以解决session问题,以及前后请求操作相关问题。

     ip_hash; 
      server10.0.0.10:8080; 
      server 10.0.0.11:8080; 
}

1.1.3  响应时延优先策略

upstreamfavresin{//fair机制,即响应延时短的优先调度

fair; 
      server10.0.0.10:8080; 
      server10.0.0.11:8080; 
     
}

1.1.4  url HASH机制

upstreamresinserver{//url hash机制。固定URL到固定的后端,便于数据缓存。
      server10.0.0.10:7777; 
      server 10.0.0.11:8888; 
      hash $request_uri; 
      hash_method crc32; 
}

1.2    策略使用:Server Location指定

location ~^/agentMsg/{

                        proxy_pass http://xxx/  #必须要加

                        allow 7.7.7.7;

                        allow 8.8.8.8;

                        deny all;

}

1.2.1  Location规则的Key

访问的URL,如:~ ^/agentMsg/

其中有一些符号的具体含义是:

1.     =开头表示精确匹配

2.     ~为区分大小写匹配

3.     ~*为不区分大小写匹配

a)        !~和!~*分别为区分大小写不匹配及不区分大小写不匹

4.     ^~ 开头表示uri以某个常规字符串开头,不是正则匹配

5.   /:表示所有URL

6.        = XXX:表示精确匹配URL为XXX

7.   ^~ /XXX/:匹配任何以“XXX/”开头的地址。
8.    

9.         

1.2.2  Location规则的目标服务器(upstream策略)

就是proxy_pass http://xxx/

 

1.      然后server节点下的location节点中的proxy_pass配置为:http:// + upstream策略名称

a)      指定后端是使用http

b)     upstream名称”则会使用执行的server IP替换

c)       

2.        location指定的url会负载分担到均衡服务器上

3.        代理规则是:

a)        url不变,域名不变。

b)        DIP替换为upstream策略指定的目标IP源IP也会变为Nginx所在IP。

c)        目的端口号替换为指定的端口号;源端口号也替换为新的。(底层就是TCP代理)。

d)        协议替换为指定的http或者https

1.2.3  Location规则的权限控制

Location除了能实现指定URL到达指定服务器的功能外。还能指定一些访问控制策略,如拒绝或允许某些SIP的访问等。包括如下:

1.2.3.1 设置访问IP权限

https://zhidao.baidu.com/question/1669221438184214227.html

location ~^/agentMsg/{

                        proxy_pass http://xxx/xx  #必须要加

                        allow 7.7.7.7;

                        allow 8.8.8.8;

                        deny all;

}

2      Nginx的后端主备

upstream webname {  
  server 192.168.0.1:8080;  
  server 192.168.0.2:8080 backup;  
}
有时候就是希望使用某个后端,另一个只有当主后端失败了才使用,那么就需要使用主备的方式。

3      Nginx的URL重写 rewrite

有的时候,需要修改访问的URL。

比如一个大项目,是由N个比较独立的子项目组成的。

每个子项目都可以独立部署,那么每个子项目都有自己的URL集。

这种大项目中,各子项目会被部署到独立的一组服务器上。

所以,在大项目中,为了把访问分发到子项目对应的服务器上,各子项目的URL在大项目中会加一个子项目前缀,以便于Nginx分发到正确的后端服务器上。此时Nginx便需要具有URL重写的功能了。比如,在大项目中的url是http://mydomain/subproject_prefix/url_in_subproject,那么达到子项目的服务器上应该变为http://mydomain/url_in_subproject

 

3.1    参考资料

http://blog.csdn.net/white__cat/article/details/31786361

https://segmentfault.com/a/1190000002797606

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值