Windows下使用Nginx+Tomact做负载均衡
前言
今天,王子与大家闲谈一下如何在Windows下使用Nginx+Tomcat做负载均衡的完整步骤,小伙伴们可以试着自己动手实践一下哦。
另外说明一点,本篇文章是纯实操文章,不涉及太多原理的解读,后期可能单独开一个专栏来深入讨论Nginx的原理。
好了那我们直接开始。
下载Nginx
首先我们去官网下载一个Windows稳定版本的Nginx,官网地址:http://nginx.org/en/download.html
下载后解压到想要的位置,小伙伴们要注意了,千万不要把它解压到带有中文的文件夹下,会导致不能启动的。
Window上的启动非常简单,我们只要进入文件夹,双击nginx.exe就可以直接启动了
nginx的默认端口是80端口,由于王子电脑上的80端口被ISS占用,所以我们修改一下端口,改成81端口。
修改端口也很容易,直接进入conf文件夹,打开nginx.conf文件,修改如下位置即可:
修改后,我们直接双击就可以启动Nginx服务了,你会看到一个一闪而过的命令窗口,不用在意,其实已经启动成功了,我们在浏览器输入http://localhost:81/,就可以看到Nginx的启动页面了。
这样我们的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+Tomact做负载均衡的更多相关文章
- Windows下使用Nginx+tomcat配置负载均衡
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口 ...
- Jenkins服务使用nginx代理服务器做负载均衡
学习nginx代理服务器做负载均衡的使用 在本地安装Nginx 1.下载nginx http://nginx.org/en/download.html 下载稳定版本,以nginx/Wi ...
- [Linux]nginx tomcat做负载均衡
之前使用nginx做过web反向代理,没有做过负载均衡,今天有个同学须要做tomcat的负载均衡,我也研究下. 一共是2个机器,一个物理机(win7)上面部署2个tomcat,使用不同的port启动. ...
- Nginx+tomcat 做负载均衡
架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面(注:没做动静分离,静态动态全部都转给tomcat) 优点:实现了可弹性化的架构,在压力 ...
- Ubuntu下实现Nginx+Tomcat实现负载均衡
先说一下为什么写这个文章,在性能测试过程中,我们可能会关注很多指标,比如CPU.IO.网络.磁盘等,通过这些指标大致可以判断哪个环节遇到了性能瓶颈,但是当这些指标无法判断出性能瓶颈时,我们可能就需要对 ...
- 【Nginx】Windows平台下配置Nginx服务实现负载均衡
前言:废话不多说了,直接上步骤. 系统环境:win10 测试用的开发环境和服务类型:VS2022 + DotNet 6 + WebApi 1.本地先创建一个webapi项目,用于测试使用. 2.新建一 ...
- Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)
概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...
- 【转载】Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)
概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...
- 在Nginx中做负载均衡配置的实例讲解
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法. 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某 ...
随机推荐
- Java并发--final关键字
一.final使用场景 final可以稀释变量,方法和类,用于便是修饰的内容一旦赋值之后不会再被改变,比如string类就是一个final类型的类. 二.final修饰变量 在Java中变量可以分为成 ...
- JDK1.8源码学习-String-hashCode方法为什么选择数字31作为乘子
1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主 ...
- pyttsx3 的使用教程
import pyttsx3 def use_pyttsx3(): # 创建对象 engine = pyttsx3.init() # 获取当前语音速率 rate = engine.getPropert ...
- C#/VB.NET 比较两个Word文档差异
本文以C#和VB.NET代码为例,来介绍如何对比两个Word文档差异.程序中使用最新版的Spire.Doc for .NET 版本8.8.2.编辑代码前,先在VS程序中添加引用Spire.Doc.dl ...
- python编译错误ValueError: Complex data not supported
今天在用python跑一个k-means算法与谱聚类算法对比的程序时,谱聚类的图不能出来,编译报错 后来,多亏了这位GitHub用户,找到了解决办法,是因为在运算过程中出现了复数,因此要进行强制转换 ...
- 第3篇scrum冲刺(5.23)
一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏 调用小程序接口获取用户微信登录权限,初始化 完成云开发配置,初始化数据库: 进度较慢,后面可能会有点困难 ...
- pandas电子表格的读取(pandas中的read_excel)
上面那篇文章中,初步介绍了一个文本文件的读取:接下来介绍另外一种常见的本地数据格式,那就是Excel电子表格,如果读者在学习或者工作中需要使用Python分析某个Excel表格数据,改如何完成第一个的 ...
- 区块链入门到实战(33)之Solidity – 数据类型
在用任何语言编写程序时,都需要使用变量来存储各种信息.变量是内存空间的名称,变量有不同类型,例如整型.字符串类型等等.操作系统根据变量的数据类型分配内存. Solidity中,变量类型有以下几大类: ...
- SSM项目_Eclipse卡进程 一直loading加载spring-xx.xsd/无法加载SpringXSD文件
你遇到了套娃,请进https:////www.cnblogs.com/steamer/articles/12500645.html查看答案
- SICP之应用序和正则序
以一个题目来说明 (define (square x) (* x x)) (define (sum-squares x y) (+ (square x) (square y))) (define (f ...