tomcat服务器是apache下非常优秀的一款web服务器,当今的互联网企业中90%左右的中小型企业使用的都是tomcat。tomcat在部署项目时有很多很多的解决方案,这些你都清楚吗?

1、同一个端口部署多个项目

在webapps下同时防止多个项目,那么在tomcat启动的时候,这些项目都会跑起来。这一点想必大家都知道,在我们初次安装tomcat的时候,webapps下面就有多个项目。这些项目可以相互独立也可以相互影响,比如通过页面重定向技术就可以让本来独立的项目相互影响起来。

2、默认项目

刚安装好tomcat的时候我们会启动它,然后在浏览器里直接输入localhost:8080,然后就会进入相关页面,这时老师往往会告诉你安装成功了。但你知道为什么你不输入项目名称直接输入ip和端口号就直接可以访问吗?其实,tomcat有默认的规则,webapps下的项目如果有ROOT名称的项目,那么这个项目就作为默认项目,访问的时候你就不需要加上项目的名称。其次,他为什么可以直接访问的相关的主页呢?原因在于web.xml这个文件里面的<welcome-file-list>标签,你可以在这里配置项目中默认访问的主页。

当然,你不必每次发布项目时都把自己的项目改名为ROOT,还有另外的一种处理方式,就是重写ROOT项目名称,ROOT名称是tomcat源码里面默认的一个项目名称,但是他也为我们开发者提供了一个便利的手段,通过配置server.xml来实现。我们需要在<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">的标签里面配置<Context path="" docBase="\istone-mngwx" debug="0" reloadable="true" />标签就可以了,其中docBase表示重写ROOT的项目名称,path表示虚拟访问路径,空白表示直接可以通过ip加上port就可以访问了。当然前提如果需要修改默认主页的话,需要在web的xml里面修改。

3、https协议

tomcat不仅支持http协议还支持https协议,有的时候我们需要将自己的项目发布成https的,那我们就需要在tomcat里面配置了。首先第一步当然需要得到ssl证书,如果自己开发测试就完全可以使用apache的工具自己制作证书了。tomcat支持同一个项目使用不同的端口进行访问,我们完全可以配置另外一个端口走https协议,

<Connector port="9898" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\GRG项目\paybill\apache-tomcat-7.0.69-windows-x64\apache-tomcat-7.0.69\tomcat.keystore"
keystorePass="tomcat"/>

4、同一个tomcat部署不同端口不同项目

虽然大多数一个tomcat部署一个项目,多个项目的话就开启多个tomcat,当然在开启多个tomcat的时候,里面的各个端口号最好都做相应的修改。然后通过不同的端口来部署各自的项目。但是对于题目中的这种需求,tomcat也是可以实现的。我们只需要在tomcat的server.xml文件里配置多个service就可以了。然后再service里面配置端口等信息。

  <Service name="Catalina1">
<Connector port="8098" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8067" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<Engine name="Catalina1" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps1" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>

最近在部署项目时候遇到了一点问题,于是就把tomcat容器好好研究了一番,突然发现不起眼的tomcat竟然还有如此多的功能,当然这只是tomcat的冰山一角,tomcat8开始的新的NIO访问机制,这都是一些比较底层的东西,有时间的话还是应该看看源码研究一下。

最新文章

  1. CRT 和mysql 中文乱码解决方式
  2. 通过Windows组策略限制证书组织流氓软件的安装运行
  3. flash中htmlText样式
  4. mysql storage enginees
  5. Cable master
  6. Cookie与Session的初探
  7. Brackets 配置
  8. Android 获取图片资源的4种方式
  9. C# asp:Repeater DataSource List&lt;T&gt;
  10. aix puppet agent
  11. Java中的过滤器,拦截器,监听器---------简单易懂的介绍
  12. AS3语法和UNITY C#语法的异同
  13. vue2.0获取自定义属性的值
  14. What&#39;s news in Visual Studio 2017
  15. @RequestParam注解使用:Name for argument type [java.lang.String] not available, and parameter name information not found in class file either.
  16. android拾遗——Android之Notification和NotificationManager
  17. 小白学习之Code First(一)
  18. 词法分析用c++实现的
  19. 站点下的robots
  20. 使用 MySQL 管理层次结构的数据

热门文章

  1. HackerRank - array-partition 并查集
  2. 雷林鹏分享:jQuery EasyUI 数据网格 - 添加查询功能
  3. element,点击查看,实现tab切换:
  4. I2C(smbus pmbus)和SPI分析
  5. Xsheel远程链接ECS,Xftp上传文件到ECS
  6. 绿豆蛙的归宿(Java)
  7. thinkphp的初步认识
  8. math.random()方法的使用
  9. SpringBoot初始教程之Servlet、Filter、Listener配置
  10. 3DSMAX 卸载