12

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完成后,分别在两台机器上配置主页,但是两台服务器的主页内容不同,以便区分负载。

clipboard.png

设置test02和03的主页

clipboard.png

clipboard.png

3.开始设置负载均衡
编辑负载均衡服务器的主配置文件
vim /usr/local/nginx/conf/nginx.conf

clipboard.png

clipboard.png

在http里面,server外面定义后端服务器组用来做负载均衡(负载均衡可以将自身也作为web服务器轮询)。在server中引用定义的后端服务器组。

仅仅是作为普通轮询直接填写后端服务器IP地址即可,如果需要按照不同服务器的性能分配不同的权重,可在服务器后面加上权重。或者设置为IP hash。如下图:
加入权重的配置。保证充分利用服务器的性能。

clipboard.png

IP hash的配置
保证在短时间内,同一个客户端的请求不被分配到其他的nginx-server上

clipboard.png

IP hash的配置
保证在短时间内,同一个客户端的请求不被分配到其他的nginx-server上

保存退出,重新加载nginx。
nginx –s reload

clipboard.png

访问负载均衡服务器,查看是否产生正常的轮询访问(为了直观对比使用命令行访问)

clipboard.png

访问负载均衡服务器,产生不同的访问结果,对应两台后端服务器,说明负载均衡搭建成功。

本文作者:彭锐
阅读原文
本文为云栖社区原创内容,未经允许不得转载。


数据库知识分享者
27.8k 声望35.7k 粉丝

数据库知识分享