Nginx的负载均衡
一.Nginx简介
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
二.Nginx应用场景
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
三.今天的实验主要是nginx来作为负载均衡服务器,同时实验中需要用nginx作为web服务器。
负载均衡策略主要是以下三种:
1.轮循 每个请求逐个分发到后端服务器
2.加权轮循 按照分配的权重将请求分发到后端服务器
3.ip hash 轮询的基础上,保持一个客户端多次请求分发到一台后端服务器上
实验环境:
三台虚拟机:192.168.100.3 (负载均衡器) nginx-test01
192.168.100.4 (web服务器) nginx-test02
192.168.100.5 (web服务器) nginx-test03
操作系统:centos 7.3
具体操作:
1.现在每台虚拟机上安装nginx,先下载安装包,然后逐个安装。
tar zvxf nginx-1.8.1.tar.gz 解压缩安装包
cd nginx-1.8.1 进入解压目录
./configure--prefix=/usr/local/nginx--user=nginx--group=nginx --with-http_stub_status_module --with-http_ssl_module 编译
make && make install 安装
- 编译过程中,可能因为环境的不同缺少部分包,需手动yum安装
2.先安装nginx完成后,分别在两台机器上配置主页,但是两台服务器的主页内容不同,以便区分负载。
设置test02和03的主页
3.开始设置负载均衡
编辑负载均衡服务器的主配置文件
vim /usr/local/nginx/conf/nginx.conf
在http里面,server外面定义后端服务器组用来做负载均衡(负载均衡可以将自身也作为web服务器轮询)。在server中引用定义的后端服务器组。
仅仅是作为普通轮询直接填写后端服务器IP地址即可,如果需要按照不同服务器的性能分配不同的权重,可在服务器后面加上权重。或者设置为IP hash。如下图:
加入权重的配置。保证充分利用服务器的性能。
IP hash的配置
保证在短时间内,同一个客户端的请求不被分配到其他的nginx-server上
IP hash的配置
保证在短时间内,同一个客户端的请求不被分配到其他的nginx-server上
保存退出,重新加载nginx。
nginx –s reload
访问负载均衡服务器,查看是否产生正常的轮询访问(为了直观对比使用命令行访问)
访问负载均衡服务器,产生不同的访问结果,对应两台后端服务器,说明负载均衡搭建成功。