Windows下使用Nginx+Tomcat做负载均衡的完整步骤


Posted in Servers onMarch 31, 2021

前言

今天,王子与大家闲谈一下如何在Windows下使用Nginx+Tomcat做负载均衡的完整步骤,小伙伴们可以试着自己动手实践一下哦。

另外说明一点,本篇文章是纯实操文章,不涉及太多原理的解读,后期可能单独开一个专栏来深入讨论Nginx的原理。

好了那我们直接开始。

下载Nginx

首先我们去官网下载一个Windows稳定版本的Nginx,官网地址:http://nginx.org/en/download.html

Windows下使用Nginx+Tomcat做负载均衡的完整步骤

下载后解压到想要的位置,小伙伴们要注意了,千万不要把它解压到带有中文的文件夹下,会导致不能启动的。

Window上的启动非常简单,我们只要进入文件夹,双击nginx.exe就可以直接启动了

nginx的默认端口是80端口,由于王子电脑上的80端口被ISS占用,所以我们修改一下端口,改成81端口。

修改端口也很容易,直接进入conf文件夹,打开nginx.conf文件,修改如下位置即可:

Windows下使用Nginx+Tomcat做负载均衡的完整步骤

修改后,我们直接双击就可以启动Nginx服务了,你会看到一个一闪而过的命令窗口,不用在意,其实已经启动成功了,我们在浏览器输入http://localhost:81/,就可以看到Nginx的启动页面了。

Windows下使用Nginx+Tomcat做负载均衡的完整步骤

这样我们的Nginx环境就部署好了。

配置文件介绍

现在我们有了Nginx的环境,接下来我们的目标是通过Nginx将用户的请求反向代理到Tomcat上,那么我们首先启动一台Tomcat服务器,默认配置即可。

然后我们打开nginx.conf文件,王子给大家简单介绍一下里面的一些配置的含义。

listen    81;
    server_name localhost;

listen:刚才我们已经改过了,它就是代表Nginx的监听端口,这个没什么可说的

server_name:表示监听到之后请求转到哪里,默认直接转到本地。

location / {
      root  html;
      index index.html index.htm;
    }

location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

root:里面配置了root这时表示当匹配这个请求的路径时,将会在html这个文件夹内寻找相应的文件。

index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

除了这些配置,我们再补充一个配置

proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹。

那么现在我们修改一下配置文件,如下:

location / { 
  proxy_pass http://localhost:8080;
}

然后我们让Nginx重新加载配置文件,回到Nginx根目录执行nginx -s reload命令就可以了。

然后我们再重新打开Nginx的页面,小伙伴们,是不是发现它已经打开了Tomcat页面呢。

实现负载均衡的配置

刚刚我们已经实现了请求的反向代理,从Nginx转发到了Tomcat上,那么如何配置可以实现一个Tomcat的负载均衡集群呢,其实也是很容易的。

配置如下:

upstream localtomcat { 
  server localhost:8080; 
} 
 
server{ 
    location / { 
      proxy_pass http://localtomcat; 
    } 
    #......其他省略 
}

小伙伴们,划重点了,这里一定要注意。upstream后的名字一定不要带下划线,Nginx是不认下划线的,会导致转发异常。

那么如何添加新的tomcat实现负载均衡呢?

我们修改端口,新打开一个tomcat服务器,端口为8081,然后增加配置如下:

upstream localtomcat { 
  server localhost:8080; 
  server localhost:8081; 
}

再重新加载Nginx的配置文件,你会发现,负载均衡已经实现了,现在会向两台tomcat转发请求了。

而且我们可以设置weight=数字来指定每个tomcat的权重,数字越大,表明请求到的机会越大。

配置如下:

upstream localtomcat { 
  server localhost:8080 weight=1; 
  server localhost:8081 weight=5; 
}

总结

好了,到这里我们已经在Windows下搭建好了Nginx+Tomcat的负载均衡集群。

王子今天的分享就到这里了,欢迎小伙伴们继续关注后续文章。

以上就是Windows下使用Nginx+Tomcat做负载均衡的完整步骤的详细内容,更多关于Nginx+Tomcat做负载均衡的资料请关注三水点靠木其它相关文章!

Servers 相关文章推荐
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 Servers
提升Nginx性能的一些建议
Mar 31 Servers
nginx的zabbix 5.0安装部署的方法步骤
Jul 16 Servers
Nginx+Windows搭建域名访问环境的操作方法
Mar 17 Servers
Ubuntu Server 安装Tomcat并配置systemctl
Apr 28 Servers
docker compose 部署 golang 的 Athens 私有代理问题
Apr 28 Servers
centos7安装mysql5.7经验记录
May 02 Servers
Nginx 匹配方式
May 15 Servers
git中cherry-pick命令的使用教程
Jun 25 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
Jul 07 Servers
Nginx报错104:Connection reset by peer问题的解决及分析
Jul 23 Servers
Windows7下FTP搭建图文教程
Aug 05 Servers
阿里云Nginx配置https实现域名访问项目(图文教程)
详解Nginx 工作原理
fastdfs+nginx集群搭建的实现
Nginx域名转发https访问的实现
Mar 31 #Servers
Nginx本地目录映射实现代码实例
Mar 31 #Servers
nginx 防盗链防爬虫配置详解
Mar 31 #Servers
Nginx服务器如何设置url链接
You might like
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
web前端vue filter 过滤器
2018/01/12 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
js实现限定范围拖拽的示例
2020/10/26 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
深入理解Python中字典的键的使用
2015/08/19 Python
python制作最美应用的爬虫
2015/10/28 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
python3 反射的四种基本方法解析
2019/08/26 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
西式婚礼证婚词
2014/01/12 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
学生安全责任协议书
2016/03/22 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis