使用Nginx实现多台服务器网站负载均衡的配置方法介绍 |
您所在的位置:网站首页 › php负载均衡如何实现功能 › 使用Nginx实现多台服务器网站负载均衡的配置方法介绍 |
使用Nginx实现网站负载均衡的配置方法介绍
1.准备工作1.1 Linux系统安装Nginx1.2 准备三台服务器1.3配置主服务器nginx访问路径1.4访问主服务器
2.Nginx负载均衡的几种不同方式介绍2.1 轮询2.2 权重2.3 iphash2.4 最少连接2.5 fair服务器的响应时间来分配
3.Nginx配置
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/ —从服务器 显示页面如下: 配置完毕,保存,重启nginx配置生效 service nginx reload 打开网页浏览:http://20.20.24.10/ 第一次看到的是http://20.20.24.11:8080/ 从服务器的页面 再次刷新看到的是http://20.20.24.12:8080/ 从服务器的页面
轮询方式是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模块即可 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |