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 反向代理使用的,因为这个反向代理功能表现的效果 ...
随机推荐
- BPM系统,工作流引擎,表单引擎常用30个功能与常见问题
1.1:支持国际化 如果使用工具包的模式开发,支持国际化的工作由自己完成的. 如果使用Ccbpm 的前端,主要的功能页面已经支持, 后台的设置的页面全部中文,没有做支持国际化. 1.2:能单独部署,微 ...
- 用C/C++手撕CPlus语言的集成开发环境(1)—— 语言规范 + 词法分析器
序言 之所以叫做CPlus语言,是因为原本是想起名为CMinus的,结果发现GitHub和Gitee上一堆的CMinus的编译器(想必都是开过编译原理课程并且写了个玩具级的语言编译器的大佬们吧).但是 ...
- Salesforce 集成篇零基础学习(一)Connected App
本篇参考: https://zhuanlan.zhihu.com/p/89020647 https://trailhead.salesforce.com/content/learn/modules/c ...
- TP5学习记录(Model篇)
ThinkPHP 数据库操作 数据库连接 #在config/database.php设置数据库连接参数或者利用Db::connect()方法设置数据库连接 /* * public static fun ...
- hdu 3265 线段树扫描线(拆分矩形)
题意: 给你n个矩形,每个矩形上都有一个矩形的空洞,所有的矩形都是平行于x,y轴的,最后问所有矩形的覆盖面积是多少. 思路: 是典型的矩形覆盖问题,只不过每个矩形上多了一个矩 ...
- LNMP环境搭建Wordpress博客
目录 LNMP架构工作原理 yum源安装 网站源包安装 LNMP是Linux Nginx MySQL/MariaDB Php/perl/python 的简称,是近些年才逐渐发展起来的构架,发展非常迅 ...
- hdu4965 巧用矩阵乘法结合律
题意: 给两个矩阵,n*m的矩阵A,和m*n的矩阵B, 求(A*B)^(n*n)其中 m<=6,n<=1000. 思路: 一开始直接模拟,写了个矩阵快速幂,超时了,因 ...
- 9.PHP文件处理
PHP文件系统 (当成是扩展C++来看就行了,几乎一样): 读取整个文件readfile() .file(). file_get_contents() <?php readfile('fi ...
- 【死磕JVM】用Arthas排查JVM内存 真爽!我从小用到大
Arthas是啥 当我们系统遇到JVM或者内存溢出等问题的时候,如何对我们的程序进行有效的监控和排查,就发现了几个比较常用的工具,比如JDK自带的 jconsole.jvisualvm还有一个最好用的 ...
- File & Directory
新开一节IO(Input/Output)的用法. 这节主要讲一下操作文件和文件目录的两个静态类:File 和 Directory. 在进入正题之前,先理解一下相对路径和绝对路径这两个概念: 绝对路径, ...