使用nginx做反向代理来访问tomcat服务器

时间:2023-01-10 06:57:09

本次记录的是使用nginx来做一个反向代理来访问tomcat服务器。简单的来说就是使用nginx做为一个中间件,来分发客户端的请求,将这些请求分发到对应的合适的服务器上来完成请求及响应。

第一步:安装及配置tomcat

1.1 下载tomcat

  * 下载地址:https://tomcat.apache.org/download-80.cgi

使用nginx做反向代理来访问tomcat服务器

1.2 将下载的tomcat解压到指定位置并且复制多个:

使用nginx做反向代理来访问tomcat服务器

1.3 修改各个tomcat的配置文件:修改conf/server.xml配置文件中的信息

<?xml version='1.0' encoding='utf-8'?>
<Server port="8105" shutdown="SHUTDOWN"> <!-- 默认为8005,这里我把第一个修改为8105,后面两个分别是8205,8305 -->
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">   <!-- 默认是8080,这里我第一个修改为8181,后面两个分别为8182,8183 -->
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />   <!-- 默认是8009,这里我第一个修改为8109,后面两个分别为8209,8309 -->
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm> <Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>
</Engine>
</Service>
</Server>

* 修改完server.xml配置文件后还需要修改tomcat的bin目录下的 startup.bat 和 shutdown.bat 

在修改这两个配置文件以前我们需要配置三个环境变量(因为我准备使用三台tomcat,有多少台tomcat服务器就需要配置多少个环境变量)

使用nginx做反向代理来访问tomcat服务器

配置完以后开始修改文件,修改文件非常简单就是将每一个tomcat对应其中的CATALINA_HOME修改为自定义的环境变量即可,下面附上部分文件详情

使用nginx做反向代理来访问tomcat服务器

我们在改的时候最好采用全文替换的方式,这样就不会出现遗漏。好了到此我们的一台服务器多台tomcat安装也就到此结束,最好是结果。

使用nginx做反向代理来访问tomcat服务器

第二步:安装及配置nginx

2.1 下载nginx

  * 下载网址:http://nginx.org/en/download.html

使用nginx做反向代理来访问tomcat服务器

2.2 将nginx解压到指定的目录

使用nginx做反向代理来访问tomcat服务器

2.3 修改nginx的配置文件( conf / nginx.conf

使用nginx做反向代理来访问tomcat服务器

第三步:测试

做完这些我们就可以在tomcat的webapps目录下创建一个项目,然后放一个静态网页来简单测试下。

使用nginx做反向代理来访问tomcat服务器

最终我们通过外网访问,可以明确的看到,nginx采用的是循环的方式给我们分发请求。不过还需要注意的是,在配置完所有的文件以后需要重新启动一下tomcat和nginx。

使用nginx做反向代理来访问tomcat服务器使用nginx做反向代理来访问tomcat服务器使用nginx做反向代理来访问tomcat服务器

***********  到此整个使用nginx做web服务器的反向代理到目前为止已经结束,算是记录一个基本的使用,在这其中还有很多的细节需要注意,当然其中还有动静态分离等等这些都需要去研究学习,只能说编程之路只会越走越远,越学越深,只要不放弃终将取得一定的成就。