使用Nginx实现多台服务器网站负载均衡的配置方法介绍

230 篇文章 8 订阅
58 篇文章 1 订阅

1.准备工作

结合本文场景,需要安装Nginx和PHP环境

1.1 Linux系统安装Nginx

安装nginx

1.2 准备三台服务器

服务器ip分别是:

http://20.20.24.10/ —主服务器
http://20.20.24.11:8080/ —从服务器
http://20.20.24.12:8080/ —从服务器

保证每台服务器可以正常访问,关闭防火墙和selinux

setenforce 0
service iptables stop

也可以开启防火墙,设置ip互相访问

配置不同的web页面,用于区分是否实现负载均衡,如 :
http://20.20.24.11:8080/ —从服务器 显示页面如下:
在这里插入图片描述
http://20.20.24.12:8080/ —从服务器 显示页面如下:
在这里插入图片描述

1.3配置主服务器nginx访问路径

 
 //在http节点下,加入upstream节点,配置代理多台服务器
upstream  slbserver {
       server    20.20.24.11:8080;
       server    20.20.24.12:8080;
}
server {
        listen       80;
        server_name  localhost;
        error_log /var/log/nginx/localhost-error.log;
        rewrite_log on;
        #access_log  logs/host.access.log  main;
        root   /usr/local/nginx/html;
        
        //将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,如下:
        location / {
             proxy_pass http://slbserver;
        }
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           /usr/local/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  LOCAL_ENV          "localhost";
            include        fastcgi_params;
        }

配置完毕,保存,重启nginx配置生效

service nginx reload

在这里插入图片描述

1.4访问主服务器

打开网页浏览:http://20.20.24.10/

第一次看到的是http://20.20.24.11:8080/ 从服务器的页面
在这里插入图片描述

再次刷新看到的是http://20.20.24.12:8080/ 从服务器的页面

在这里插入图片描述
快速刷新,可以看到页面之间的转换,至此实现nginx负载均衡

2.Nginx负载均衡的几种不同方式介绍

2.1 轮询

轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训20.20.24.11服务和20.20.24.12服务

upstream  slbserver {
       server    20.20.24.11:8080;
       server    20.20.24.12:8080;
}

2.2 权重

指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后20.20.24.12服务的访问比率会是20.20.24.11服务的二倍。


upstream  slbserver {
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

再次访问主服务器,则会发现12的频率要比11的高两倍

2.3 iphash

每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)

upstream  slbserver {
       ip_hash;
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

配置之后,在访问主服务器时,发现当前IP地址固定访问了12从服务器的页面,不会再跳转到11从服务器的页面

2.4 最少连接

将请求分配到连接数最少的服务上

upstream  slbserver {
       least_conn;
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

2.5 fair服务器的响应时间来分配

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream  slbserver {
       fair;
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

若是未安装upstream-fair 插件,重启nginx会报错,需要先安装之后再使用

3.Nginx配置

以轮循为例,如下是nginx.conf完整代码

vim nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}


http {
  upstream  slbserver {
       server    20.20.24.11:8080;
       server    20.20.24.12:8080;
}


   server {
       listen       10000;
       server_name  localhost;

       location / {
        proxy_pass http://slbserver ;
        proxy_redirect default;
      }

    }

}


如果要修改负载均衡算法修改对应upstream模块即可

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值