Nginx 配置实例-配置负载均衡

Posted 小学弟-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 配置实例-配置负载均衡相关的知识,希望对你有一定的参考价值。

 

0. 实例效果

1. 两个 tomcat 的安装(可选)

这里的两个 tomcat,实际是为了模拟后端真实服务器,既然是默认后端服务器,当然也可以选用其他服务器软件,所以这一步为可选操作。

1.1 tomcat8081 的安装

1.1.1 tomcat8081 安装包的装备

# 解压 tomcat 安装包
tar zxvf apache-tomcat-7.0.70.tar.gz	
		
# 复制 tomcat 安装文件到 /usr/local/tomcat8081 目录
cp -vr apache-tomcat-7.0.70 /usr/local/tomcat8081
 

 

1.1.2 tomcat8081 配置文件的修改

因为这里不是使用 tomcat 的默认端口进行安装,所以需修改 tomcat 的部分端口,修改 server.xml 文件,修改部分如下:
在这里插入图片描述
在这里插入图片描述

1.1.3 验证

/usr/local/tomcat8081/bin/startup.sh			# 启动 8081 端口的 tomcat
/usr/local/tomcat8081/bin/shutdown.sh			# 停止 8081 端口的 tomcat 
ps aux | grep tomcat							# 查看 tomcat 进程状态
 

 

tomcat8081 启动后,浏览器访问 tomcat8081 所在主机 IP 及对应端口,显示页面如下:
在这里插入图片描述

1.1.4 相关目录及文件的创建

在 /usr/local/tomca8081/webapps/ 目录下创建 edu 目录

mkdir -v /usr/local/tomcat8081/webapps/edu
 

 

在 edu 目录下创建文件 a.html,并填写如下内容:

<h1>edu-----8081 !!!</h1>
 

 

浏览器访问 http://192.168.25.120:8081/edu/a.html,显示页面如下:
在这里插入图片描述

1.2 tomcat8082 的安装

1.2.1 tomcat8082 安装包的装备

# 解压 tomcat 安装包
tar zxvf apache-tomcat-7.0.70.tar.gz	
		
# 复制 tomcat 安装文件到 /usr/local/tomcat8082 目录
cp -vr apache-tomcat-7.0.70 /usr/local/tomcat8082
 

 

1.2.2 tomcat8082 配置文件的修改

因为这里不是使用 tomcat 的默认端口进行安装,所以需修改 tomcat 的部分端口,修改 server.xml 文件,修改部分如下:
在这里插入图片描述
在这里插入图片描述

1.2.3 验证

/usr/local/tomcat8082/bin/startup.sh			# 启动 8082 端口的 tomcat
/usr/local/tomcat8082/bin/shutdown.sh			# 停止 8082 端口的 tomcat 
ps aux | grep tomcat							# 查看 tomcat 进程状态
 

 

tomcat8082 启动后,浏览器访问 tomcat8082 所在主机 IP 及对应端口,此处为 192.168.25.120:8082,显示页面如下:
在这里插入图片描述

1.2.4 相关目录及文件的创建

在 /usr/local/tomca8082/webapps/ 目录下创建 edu 目录

mkdir -v /usr/local/tomcat8082/webapps/edu
 

 

在 vod 目录下创建文件 a.html,并填写如下内容:

<h1>edu-----8082 !!!</h1>
 

 

浏览器访问 http://192.168.25.120:8082/edu/a.html,显示页面如下:
在这里插入图片描述

2. nginx 的安装

2.1 安装 pcre 依赖

su - root							// 切换到 root 用户

tar zxvf pcre-8.37.tar.gz			// 解压 pcre 安装包	

cd pcre-8.37						// 进入 pcre-8.37 目录	
./configure							// 配置 pcre-8.37 
make && make install				// 编译安装 pcre-8.37

pcre-config --version				// pcre 安装成功后,查看其版本号
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.2 安装其他依赖

su - root							// 切换到 root 用户

// 安装其他依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
 

 

2.3 Nginx 的安装

su - root							// 切换到 root 用户

tar zxvf nginx-1.12.2.tar.gz		// 解压 nginx-1.12.2.tar.gz 安装包

cd nginx-1.12.2						// 进入 nginx-1.12.2 目录
./configure							// 配置 nginx-1.12.2
make && make install				// 编译安装 nginx-1.12.2
 

 

2.4 验证

/usr/local/nginx/sbin/nginx				// 启动 nginx
/usr/local/nginx/sbin/nginx -s stop		// 停止 nginx
ps -ef | grep nginx						// 查看 nginx 进程状态
 

 

启动 nginx 之后,浏览器访问 nginx 所在主机的 IP 即端口,此处为 192.168.25.120:80(80为默认短裤,访问时可省略),显示页面如下:
在这里插入图片描述

3. nginx 负载均衡的配置

3.1 负载均衡方式 1——轮询(默认)

轮询:每个请求按时间顺序逐一分配给后端服务器,如果后端服务器 down 掉,则自动将其剔除;
使用轮询的负载均衡方式,修改 nginx 的配置文件如下:
在这里插入图片描述
浏览器访问 http://192.168.25.120/edu/a.html,显示页面如下:
在这里插入图片描述
刷新,显示页面如下:
在这里插入图片描述
可以看到使用默认的轮询方式进行负载均衡,浏览器请求被平均分配给后端的 8081、8082 两个服务器进行处理。

3.2 负载均衡方式 2——weight

weight:权重,默认值 1,根据权重设置分配请求的几率,权重值越大,分配到的请求越多。
使用权重的负载均衡方式,修改 nginx 的配置文件如下:
在这里插入图片描述
浏览器访问 http://192.168.25.120/edu/a.html,显示页面如下:
在这里插入图片描述
再次刷新,显示页面如下:
在这里插入图片描述
刷新,显示页面如下:
在这里插入图片描述
可以看到使用 weight 的轮询方式进行负载均衡,浏览器发送 3 个请求,有 2 个被分配给 8082 的服务器(几率 2/3),有一个被分配给 8081 的服务器(几率 1/3)。

3.3 负载均衡方式 3——ip_hash

ip_hash:哈希,每个请求按访问 IP 的哈希结果进行分配,这样每个访客固定请求一个后端服务器,可以解决 session 的问题。
使用 ip_hash 的负载均衡方式,修改 nginx 的配置文件如下:
在这里插入图片描述
浏览器访问 http://192.168.25.120/edu/a.html,显示页面如下:
在这里插入图片描述
刷新,显示页面如下:
在这里插入图片描述
可以看到使用 ip_hash 的轮询方式进行负载均衡,无论刷新多少次,请求始终被分配给 8081 服务器。

3.4 负载均衡方式 4——fair

fair:根据页面大小、加载时间长短智能的进行负载均衡。
nginx-upstream-fair-master fair模块源码

参考资料

《尚硅谷Nginx教程》11-nginx配置实例(负载均衡)
nginx-upstream-fair-master fair模块源码

 
 
 

 

以上是关于Nginx 配置实例-配置负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

[Nginx]nginx 配置实例-负载均衡

Nginx 配置实例-配置负载均衡

Nginx 配置实例-配置负载均衡

Nginx负载均衡配置实例详解

Nginx负载均衡配置实例(转)

干货 | Nginx负载均衡原理及配置实例