nginx的使用经历

来源:互联网 发布:c语言数组删除指定元素 编辑:程序博客网 时间:2024/04/29 16:20

1.什么样的场景下使用nginx?

很多时候我们的项目都是在一台服务器部署,但是当业务量很大时候就很陷入瓶颈期,这个时候我们就会选择在多台服务器上部署。
就像我现在的项目就部署了12台服务器,主要业务是给全国各省提供一些业务能力。这个时候使用nginx就会非常好了。因为nginx就是负载均衡
是所有的业务都能均匀的分摊到每一个服务器。

2.nginx使用起来的效果。

首先我自己在两台服务器的tomcat上部署了相同的应用。ip分别是192.168.183.131和192.168.183.132。
那么nginx就可以这样配置(我这里配置的比较简单,主要是想尝试一下nginx的功能)。

这样子配置了之后,访问http://192.168.183.130:8080/admin/login.html#/page/login(这是我的项目的地址)
多次访问就会发现会在两个服务器之间进行轮询。其中有一条关于ip_hash的作用。

nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。
这个解决多服务器的时候session共享的问题。


nginx的upstream目前支持的5种方式的分配




1、轮询(默认) 
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
upstream backserver { 
server 192.168.0.14; 
server 192.168.0.15; 



2、指定权重 
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
upstream backserver { 
server 192.168.0.14 weight=10; 
server 192.168.0.15 weight=10; 



3、IP绑定 ip_hash 
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 
upstream backserver { 
ip_hash; 
server 192.168.0.14:88; 
server 192.168.0.15:80; 



4、fair(第三方) 
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
upstream backserver { 
server server1; 
server server2; 
fair; 



5、url_hash(第三方) 
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 
upstream backserver { 
server squid1:3128; 
server squid2:3128; 
hash $request_uri; 
hash_method crc32; 

原创粉丝点击