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 配置实例-配置负载均衡的更多相关文章

  1. Nginx做NodeJS应用负载均衡配置实例

    这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均 ...

  2. Nginx+Tomcat多实例及负载均衡配置

    Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...

  3. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

  4. Nginx+tomcat配置集群负载均衡

    开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务.之初,曾有个小小的疑问为何不采用开源的a ...

  5. 【Nginx(三)】Nginx配置集群 负载均衡策略

    Nginx配置集群 负载均衡策略 一.安装环境 1.安装JDK8的环境,配置JDK8的环境变量 2.上传jar包demo-1.jar 和 demo-2.jar demo-1.jar 监听8080端口; ...

  6. Docker+nginx+tomcat7配置简单的负载均衡

    本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/4995513.html 本文介绍在Docker上配置简单的负载均衡,宿主机为Ubuntu 14.04.2 ...

  7. 转】Nginx+tomcat配置集群负载均衡

    原博文出自于:http://blog.csdn.net/bruce_6/article/details/38228299         感谢! 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食 ...

  8. Nginx配置upstream实现负载均衡及keepalived实现nginx高可用

    (原文链接:http://www.studyshare.cn/blog-front//blog/details/1159/0 ) 一.准备工作 1.准备两个项目,发布到不同的服务器上,此处使用2个虚拟 ...

  9. Linux 笔记 - 第二十章 配置 Nginx 反向代理和负载均衡

    一.简介 由于 Nginx 的反向代理和负载均衡功能经常被提及,所以将这两个功能单独提出来进行讲解. Nginx 其实仅仅是作为 Nginx Proxy 反向代理使用的,因为这个反向代理功能表现的效果 ...

随机推荐

  1. Socket简介 与 UDP

    1. Socket 简介 2. UDP 1. Socket 简介 网络编程,是指让在不同的电脑上的软件能够进行数据传递,即进程之间的通信. 本地的进程间通信(IPC) 例如有:队列.同步(互斥锁.条件 ...

  2. 2021S软件工程——个人阅读作业2

    2021S软件工程--个人阅读作业2 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 了解并熟悉软件开发的具体流程, ...

  3. Java基础(面试复习整理)

    基础知识和语法 Java语言初识 计算机语言发展 机器语言.汇编.C.C++.Java Java的诞生与发展 1995 JavaSE JavaME Android JavaEE 2006(大数据) H ...

  4. Dalvik模式下在Android so库文件.init段、.init_array段构造函数上下断点

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78244766 在前面的博客<在Android so文件的.init..ini ...

  5. Python中os模块、csv模块和xlrd模块的使用

    目录 os模块的使用 open("test.txt","mode") 读取文件中的内容 f.read() f.readline(size) f.readline ...

  6. POJ1486模拟或者匈牙利变种

    题意:       有n个矩形,每个矩形上的某个位置上都有一个点,但是由于矩形是透明的,当一些矩形重叠在一起的时候就很可能分不清哪个点是那个矩形的,给你n个矩形的坐标,还有n个点的坐标,然后让你找出所 ...

  7. [CTF]Brainfuck/Ook!编码

    [CTF]Brainfuck/Ook!编码 ---------------------  作者:adversity`  来源:CSDN  原文:https://blog.csdn.net/qq_408 ...

  8. 【python】Leetcode每日一题-二叉搜索迭代器

    [python]Leetcode每日一题-二叉搜索迭代器 [题目描述] 实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(T ...

  9. 在AWS Glue中使用Apache Hudi

    1. Glue与Hudi简介 AWS Glue AWS Glue是Amazon Web Services(AWS)云平台推出的一款无服务器(Serverless)的大数据分析服务.对于不了解该产品的读 ...

  10. Promise解析(待完成)

    Promise是一种异步操作的解决方案,将写法复杂的传统的回调函数和监听事件的异步操作,用同步代码的形式表达出来.避免了多级异步操作的回调函数嵌套. 1.主要用于异步计算 2.可以将异步操作队列化,按 ...