美文网首页
负载均衡——Nginx

负载均衡——Nginx

作者: BlueBlueSummer | 来源:发表于2019-06-23 14:59 被阅读0次

目的

简单感受下Nginx的负载均衡。

环境准备

既然是负载均衡,那机器肯定要多台。为了方便,我们就用两台机器就好了,其中一台作为反向代理和后端服务器,另一台作为后端服务器。不嫌麻烦的话,最好反向代理和后端服务器分开,性能和可用性都会提高。

        机器                    作用

192.168.0.100      反向代理和后端web服务器

192.168.0.200      后端web服务器

操作

1、在两台机器上分别安装nginx。

yum install -y ngnix

2、192.168.0.100上配置反向代理,后端机器为自身和.200机器。新增如下配置文件,

[root@192_168_0_100 ~]# cat /etc/nginx/conf.d/reverse.conf

upstream myserver {

    server 192.168.0.100:80 weight=10;

    server 192.168.0.200:80 weight=20;

}

server {

    server_name localhost;

    listen 8080;

    location / {

        proxy_pass http://myserver/;

    }

}

这里均衡策略选择按权重来,也就是1:2的关系。因为.100机器本身也作为web服务器,因此,在配置反向代理时就要设置除80端口外的port作为反向代理端口。

3、为了区分两台后端web服务器,我们修改下两台web服务器的index.html内容。

[root@192_168_0_100 ~]# cat /usr/share/nginx/html/index.html

This is 192.168.0.100

[root@192_168_0_200 ~]# cat /usr/share/nginx/html/index.html

This is 192.168.0.200

4、启动两台web服务器的nginx服务,

service start nginx

在.100服务器上可以看到nginx在监听80和8080两个端口,

[root@192_168_0_100 ~]# netstat -antp | grep nginx

tcp        0      0 0.0.0.0:8080                0.0.0.0:*                  LISTEN      75412/nginx       

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                  LISTEN      75412/nginx       

tcp        0      0 :::80                      :::*                        LISTEN      75412/nginx

而.200只监听80端口,

[root@192_168_0_200 /]# netstat -antp | grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*              LISTEN      106411/nginx: maste

tcp6      0      0 :::80                  :::*                    LISTEN      106411/nginx: maste

5、我们通过curl命令测试下负载均衡的效果,因为是2:1的权重,因此我们测试6次,找另一台机器.300测试,当然在.100和.200上测试也是可以的。

[root@192_168_0_300 /home]# curl -x http://192.168.0.100:8080 http://192.168.0.100/

This is 192.168.0.200

[root@192_168_0_300 /home]# curl -x http://192.168.0.100:8080 http://192.168.0.100/

This is 192.168.0.100

[root@192_168_0_300 /home]# curl -x http://192.168.0.100:8080 http://192.168.0.100/

This is 192.168.0.200

[root@192_168_0_300 /home]# curl -x http://192.168.0.100:8080 http://192.168.0.100/

This is 192.168.0.200

[root@192_168_0_300 /home]# curl -x http://192.168.0.100:8080 http://192.168.0.100/

This is 192.168.0.100

[root@192_168_0_300 /home]# curl -x http://192.168.0.100:8080 http://192.168.0.100/

This is 192.168.0.200

可见,测试结果和我们设置的均衡策略是一致的。

当然,nginx还提供其他均衡策略,比如,轮询(默认),ip_hash(根据ip分配),least_conn(最少连接)等,这里就不一一测试了。

相关文章

网友评论

      本文标题:负载均衡——Nginx

      本文链接:https://www.haomeiwen.com/subject/mxniqctx.html