Nginx 配置实例-配置负载均衡
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做NodeJS应用负载均衡配置实例
这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均 ...
- Nginx+Tomcat多实例及负载均衡配置
Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...
- 图文解说:Nginx+tomcat配置集群负载均衡
图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用 作者:niumd Blog:http://ari.iteye ...
- Nginx+tomcat配置集群负载均衡
开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务.之初,曾有个小小的疑问为何不采用开源的a ...
- 【Nginx(三)】Nginx配置集群 负载均衡策略
Nginx配置集群 负载均衡策略 一.安装环境 1.安装JDK8的环境,配置JDK8的环境变量 2.上传jar包demo-1.jar 和 demo-2.jar demo-1.jar 监听8080端口; ...
- Docker+nginx+tomcat7配置简单的负载均衡
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/4995513.html 本文介绍在Docker上配置简单的负载均衡,宿主机为Ubuntu 14.04.2 ...
- 转】Nginx+tomcat配置集群负载均衡
原博文出自于:http://blog.csdn.net/bruce_6/article/details/38228299 感谢! 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食 ...
- Nginx配置upstream实现负载均衡及keepalived实现nginx高可用
(原文链接:http://www.studyshare.cn/blog-front//blog/details/1159/0 ) 一.准备工作 1.准备两个项目,发布到不同的服务器上,此处使用2个虚拟 ...
- Linux 笔记 - 第二十章 配置 Nginx 反向代理和负载均衡
一.简介 由于 Nginx 的反向代理和负载均衡功能经常被提及,所以将这两个功能单独提出来进行讲解. Nginx 其实仅仅是作为 Nginx Proxy 反向代理使用的,因为这个反向代理功能表现的效果 ...
随机推荐
- Socket简介 与 UDP
1. Socket 简介 2. UDP 1. Socket 简介 网络编程,是指让在不同的电脑上的软件能够进行数据传递,即进程之间的通信. 本地的进程间通信(IPC) 例如有:队列.同步(互斥锁.条件 ...
- 2021S软件工程——个人阅读作业2
2021S软件工程--个人阅读作业2 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 了解并熟悉软件开发的具体流程, ...
- Java基础(面试复习整理)
基础知识和语法 Java语言初识 计算机语言发展 机器语言.汇编.C.C++.Java Java的诞生与发展 1995 JavaSE JavaME Android JavaEE 2006(大数据) H ...
- Dalvik模式下在Android so库文件.init段、.init_array段构造函数上下断点
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78244766 在前面的博客<在Android so文件的.init..ini ...
- Python中os模块、csv模块和xlrd模块的使用
目录 os模块的使用 open("test.txt","mode") 读取文件中的内容 f.read() f.readline(size) f.readline ...
- POJ1486模拟或者匈牙利变种
题意: 有n个矩形,每个矩形上的某个位置上都有一个点,但是由于矩形是透明的,当一些矩形重叠在一起的时候就很可能分不清哪个点是那个矩形的,给你n个矩形的坐标,还有n个点的坐标,然后让你找出所 ...
- [CTF]Brainfuck/Ook!编码
[CTF]Brainfuck/Ook!编码 --------------------- 作者:adversity` 来源:CSDN 原文:https://blog.csdn.net/qq_408 ...
- 【python】Leetcode每日一题-二叉搜索迭代器
[python]Leetcode每日一题-二叉搜索迭代器 [题目描述] 实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(T ...
- 在AWS Glue中使用Apache Hudi
1. Glue与Hudi简介 AWS Glue AWS Glue是Amazon Web Services(AWS)云平台推出的一款无服务器(Serverless)的大数据分析服务.对于不了解该产品的读 ...
- Promise解析(待完成)
Promise是一种异步操作的解决方案,将写法复杂的传统的回调函数和监听事件的异步操作,用同步代码的形式表达出来.避免了多级异步操作的回调函数嵌套. 1.主要用于异步计算 2.可以将异步操作队列化,按 ...