使用Nginx反向代理进行负载均衡

摘要:
在这个tomcat的默认index.jsp中添加一句Iamtomcat1:这里我发布了一个提取的tomcat server.xml修改配置:92可以正常访问。最后,配置Nginx配置文件conf/Nginx.conf:在location元素下配置代理,我们可以在服务器中配置多个位置,也可以在上游配置多个服务器。

在这里简单记录一下,我使用Nginx反向代理进行负载均衡,将请求发送到两台tomcat上。

首先解压两个tomcat,解压Nginx,一台tomcat配置可以不用动,但是我为了更方便只是将它的端口改为91:

<Connector port="91" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />

并在这个tomcat的默认index.jsp中加一句话 I am tomcat1:

<div id="congrats" class="curved container">
    <h2>If you're seeing this, you've successfully installed Tomcat. Congratulations! I am tomcat1</h2>
 </div>

输入http://localhost:91可以正常看到如下界面这台tomcat算是起开了。

使用Nginx反向代理进行负载均衡第1张

另一台tomcat就需要多处改动了,不过也就是将所有的redirectPort和port改为没有使用的端口,不然就会因为端口被占用而起不开了,因为本地已经有一个tomcat在运行了。这里我贴一个摘出来的tomcat的server.xml修改处配置:

<Server port="8006" shutdown="SHUTDOWN">

<Connector port="92" protocol="HTTP/1.1" connectionTimeout="20000"
 redirectPort="8450" />

<Connector port="8010" protocol="AJP/1.3" redirectPort="8450" />

没错,这个tomcat我修改为92端口,同时修改tomcat的默认主页,添加一句“I am tomcat2“。ok,输入http://localhost:92可以正常访问

使用Nginx反向代理进行负载均衡第2张

最后来配置Nginx配置文件conf/Nginx.conf,在location元素下配置个proxy_pass:

使用Nginx反向代理进行负载均衡第3张

location元素后面的表达式支持正则匹配,这里使用/表明所有以此符号结尾的请求都会进这个location中,我们可以在server中配置多个location,它们之间根据先后顺序进行匹配,前面匹配到后面的就不会再匹配了。在这里,所有进来的请求代理到http://test  ,这个test在upsteam元素配置,我们可以在upstream中配置多个server,这两个server正是两台tomcat的地址,运行Nginx,输入http://localhost即可完成反向代理。不断刷新可以看到两个tomcat的主页在来回切换。

ps:如果在测试的时候,修改配置文件并重启Nginx并不起效,可以去看看任务管理器的详细信息里是不是有多个Nginx在运行,默认情况下,只有两个Nginx服务。

常见Nginx命令(进入到Nginx安装目录下执行命令):

start nginx        启动nginx
nginx -s stop      快速关闭Nginx,可能不保存相关信息。
nginx -s quit      平稳关闭Nginx,保存相关信息。
nginx -s reload    重新加载nginx。
nginx -v           显示 nginx 的版本。
nginx -t 检查配置文件是否正确,修改配置文件之后建议先使用该命令检查一下。

免责声明:文章转载自《使用Nginx反向代理进行负载均衡》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringMVC源码阅读HandlerMapping初始化-AbstractHandlerMapping(五)灰度环境下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

wpf简单进度条

UserControl x:Class="WpfApplication1.UserControl2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:...

Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作

查询目标是完成3个功能: (1)查询表,返回某一个值。例如查询表中记录的条数,返回一个int类型数据 (2)查询表,返回结果为某一个对象。 (3)查询表,返回结果为某一个泛型的list集合。 一、查询表中记录的条数,返回一个int类型数据的操作方法 使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.D...

怎么在vue中引入layui

新项目想用layui框架,学习了把前辈是怎么引入layui的,这里记录下 1.index.html要引入layui.js文件 <script src="/static/layui/layui.js" type="text/javascript" charset="utf-8"></script> 2.main.js文件要配置好lay...

WPF 之 自定义Shape

AMindMap需要一个Line,用以连接父ANode和子ANode, 简单说,就是一头大一头小的线,Wpf自带的Line是没这个功能。 Path可以画,不过,我的想法仍旧是绑定。那只能自己做咯。 图例 正文 既然Line,Rectangle等都是继承自Shape的,直接新建一个类继承自Sharp. 1 Public Class ALine 2...

js 利用image对象实现图片的预加载

 大量采用高解析度的图像的确可以让一个Web站点容光焕发。但同样也会造成站点访问速度下降——图片是文件,文件就要占用带宽,而带宽直接同访问等待时间相关。现在,让我们来学习一种名为图像预装载(image preloading)的小技巧来提高图像访问速度。 一些浏览器试图通过在本地缓存中保存这些图片来解决此问题。这样一来可以顺序调用这些图片——但对于首次使用...

Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换

前两篇不错 Spring.profile实现开发、测试和生产环境的配置和切换 - Strugglion - 博客园https://www.cnblogs.com/strugglion/p/7091021.html 详解Spring中的Profile - 简书https://www.jianshu.com/p/948c303b2253 spring-mvc-...