您现在的位置:首页 > >

使用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/ ?从服务器 显示页面如下:

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;
}


配置完毕,保存,*鬾ginx配置生效



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 插件,*鬾ginx会报错,需要先安装之后再使用


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模块即可


热文推荐
猜你喜欢
友情链接: 医学资料大全 农林牧渔 幼儿教育心得 小学教育 中学 高中 职业教育 成人教育 大学资料 求职职场 职场文档 总结汇报