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