写点什么

Tomcat 多端口,多虚拟主机配置方法

  • 2021 年 11 月 11 日
  • 本文字数:1421 字

    阅读完需:约 5 分钟

只需填加一个 Connector 就可以了。


但这种方法有一个缺点是,两个端口处理的东西是一样的,也就是访问 8081 和 8082 的内容是一样的。这种适合需要使用指定模个端口的情况。


接下来是让 tomcat,一个为不同域名服务。


<Engine name="Catalina" defaultHost="localhost">


<Realm className="org.apache.catalina.realm.UserDatabaseRealm"


resourceName="UserDatabase"/>


<Host name="localhost" appBase="webapps"


unpackWARs="true" autoDeploy="true"


xmlValidation="false" xmlNamespaceAware="false">


</Host>


<Host name="www.java.com" appBase="webapps2"


unpackWARs="true" autoDeploy="true"


xmlValidation="false" xmlNamespaceAware="false">


</Host>


</Engine>


只需填加一个 Host 就可以了,appBase 需要使用另外一个目录。这样不同域名,访问不同目录。


最后,我们可能希望,Tomcat 可以使用不同 IP,访问不同目录。除了进程是一个,其它跟俩个实例一样。这个 xml 比较多,只列出需要的部分。


<Service name="Catalina2">


<Connector port="8082" protocol="HTTP/1.1"


connectionTimeout="20000"


redirectPort="8443" />


<Engine name="Catalina2" defaultHost="localhost">


<Realm className="org.apache.catalina.realm.UserDatabaseRealm"


resourceName="UserDatabase


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


"/>


<Host name="localhost" appBase="webapps2"


unpackWARs="true" autoDeploy="true"


xmlValidation="false" xmlNamespaceAware="false">


</Host>


</Engine>


</Service>


上面是需要新增到 xml 里面的。就是添加了一个 Service。Service name, Engine name,host appBase 都需要修改。这样就可以一个 tomcat 完成俩个实例工作了。


附录:(各个参数的含义)


service?name?指定 service 的名字?


Connector


(表示客户端和 service 之间的连接)?port?指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求?


minProcessors?服务器启动时创建的处理请求的线程数?


maxProcessors?最大可以创建的处理请求的线程数?


enableLookups?如果为 true,则可以通过调用 request.getRemoteHost()进行 DNS 查询来得到远程客户端的实际主机名,若为 false 则不进行 DNS 查询,而是返回其 ip 地址?


redirectPort?指定服务器正在处理 http 请求时收到了一个 SSL 传输请求后重定向的端口号?


acceptCount?指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理?


connectionTimeout?指定超时的时间数(以毫秒为单位)?


Engine


(表示指定 service 中的请求处理机,接收和处理来自 Connector 的请求)?defaultHost?指定缺省的处理请求的主机名,它至少与其中的一个 host 元素的 name 属性值是一样的?


Context


(表示一个 web 应用程序,通常为 WAR 文件,关于 WAR 的具体信息见 servlet 规范)?docBase?应用程序的路径或者是 WAR 文件存放的路径?


path?表示此 web 应用程序的 url 的前缀,这样请求的 url 为 http://localhost:8080/path/****?


reloadable?这个属性非常重要,如果为 true,则 tomcat 会自动检测应用程序的/WEB-INF/lib?和/WEB-INF/classes 目录的变化,自动装载新的应用程序,我们可以在不重起 tomcat 的情况下改变应用程序?


host


(表示一个虚拟主机)


name?指定主机名?


appBase?应用程序基本目录,即存放应用程序的目录?


unpackWARs?如果为 true,则 tomcat 会自动将 WAR 文件解压,否则不解压,直接从 WAR 文件中运行应用程序?


Logger

评论

发布
暂无评论
Tomcat 多端口,多虚拟主机配置方法