CentOS7 Nginx负载均衡

五台服务器
192.168.155.129 nginx反向代理服务器
192.168.155.130 apache+PHP服务器,PHP要使用mysql函数库,配置的时候就要指定mysql安装路径,所以虽然以后连接远程mysql服务器,安装PHP时本地也要先安装mysql提供mysql库(只是用到了其中的库,无需启动数据库和分配账号),下面的nginx+PHP服务器也同样如此
192.168.155.131 nginx+PHP服务器
192.168.155.132 apache+PHP+mysql1服务器
192.168.155.133 apache+PHP+mysql2PHP服务器
本台nginx服务器的IP地址为 192.168.155.129




192.168.155.129shell端
暂时关闭nginx
service nginx stop


在http{}节点里添加
upstream mySite {
    server 192.168.155.130:80 down;
    server 192.168.155.131:80 weight=1;
    server 192.168.155.132:80 weight=2;
    server 192.168.155.133:80 backup;
    #ip_hash;
}
upstream 表示一组的负载均衡服务器,mySite为自定义名,用来给下面的proxy_pass参数赋值
down     表示该服务器暂时不参与负载 
weight   默认为1,weight越大,负载的权重就越大。 上面比例的话相当访问两次192.168.155.132,访问一次192.168.155.131
backup   其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
ip_hash  让每个客户端每次访问固定访问第一次访问的后端服务器,该方法有一定弊端,暂时注释掉
在需要使用负载的server{}节点里的需要使用负载的location{}里添加如下段
proxy_pass http://mySite;
该server{}节点即开始使用该组服务器做负载均衡
反向代理会把客户端请求过来的url,参数,等数据原样发给某个负载均衡的服务器上处理,如果其中有机器故障,会自动转交其他机器处理
Nginx支持多组的负载均衡,可以配置多个upstream来服务于不同的Server。
nginx 的 upstream目前支持 4 种方式的负载分配
1)、轮询(默认即相当于weight=1)
      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
      指定轮询几率,weight值和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
      每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能共享的问题。
3)、fair(第三方)
      按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
vim /usr/local/nginx/conf/nginx.conf


开启服务器
service nginx start


在mySite组每个服务器根目录下新建f1.php
每个服务器f1.php内容依次是
192.168.155.130/f1.php
<?php echo "this is 192.168.155.130";exit;?>
192.168.155.131/f1.php
<?php echo "this is 192.168.155.131";exit;?>
192.168.155.132/f1.php
<?php echo "this is 192.168.155.132";exit;?>
192.168.155.133/f1.php
<?php echo "this is 192.168.155.133";exit;?>


浏览器中输入
http://192.168.155.129/f1.php
会输出显示
this is 192.168.155.131
或
this is 192.168.155.132
每显示两次this is 192.168.155.132显示一次this is 192.168.155.131

 

posted @ 2016-01-24 22:05  风吹屁股凉冰冰  阅读(666)  评论(0编辑  收藏  举报