Ngnix负载均衡实战配置

Nginx优势

1、作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高

2、作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度

3、作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡

4、在性能方面,Nginx是专门为性能优化而开发的,实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对5万个并发连接数的响应,而且只占用很低的内存资源

5、在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持1万个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的

6、在高可用性方面,Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7x24小时不间断地运行

 

二、Ngnix负载均衡

1、转发功能

按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。

2、故障移除

通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。

3、恢复添加

如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。

4、Nginx的负载分发策略

      Nginx 的 upstream目前支持的分配算法: 
1)、轮询 ——1:1 轮流处理请求(默认)

      每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。 
2)、权重 ——you can you up (weight)
      通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。 
3)、ip_哈希算法(ip_hash)
      每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。 

三、实战配置负载均衡

1. 先修改/usr/local/etc/nginx/nginx.conf

将localhost:8081 的请求转发到http://sww这个个代理上,这个sww有2台服务器,权重各50%。

  # nginx 转发配置开始
    upstream sww {
       server localhost:8080 weight=1;
       server localhost:9080 weight=1;
    }

    # nginx 转发配置结束

    server {
        listen       8081;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://sww;
        }
        
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

通过以上配置,便可以实现,在访问localhost:8081这个网站时,由于配置了proxy_pass地址,所有请求都会先通过nginx反向代理服务器,在服务器将请求转发给目的主机时,读取upstream为 sww的地址,读取分发策略,配置8080权重为1,配置9080权重也为1。故请求会均匀的分发到这2台机器上去。

2. 启动ngnix

cd /usr/local/Cellar/nginx/1.17.6/bin

./nginx // 启动

sudo ./nginx -s reload // 重启

3. 启动sww这个代理下的2台服务器

java -jar /Users/sunww/Desktop/spring-boot-0.0.1-SNAPSHOT.jar --server.port=9080

java -jar /Users/sunww/Desktop/spring-boot-0.0.1-SNAPSHOT.jar --server.port=8080

4. 发起请求,查看负载均衡情况

通过postman 发起请求 localhost:8081

总共发起了3次请求可以看到2次打到了8080这个服务器上,

猜你喜欢

转载自blog.csdn.net/robinson_911/article/details/113582291
今日推荐