首先是设置tomcat 多域名访问
优点:提高资源利用率
配置多域名访问
1.基于IP配置虚拟主机
<Host appBase="F:\virtualhost1" autoDeploy="true" name="sitel" unpackWaRs="true">
<Context path="" docBase="." debug="0" />
</Host>
appBase:是部署项目的路径
autoDeploy:热部署,如果为true 那么我们在修改一些文件的时候会重新部署项目
name:ip地址的一些映射名称
指定ip映射名称
c:\Windows\System32\drivers\etc
下的hosts文件
新增:127.0.0.1 sitel
2.基于端口配置
增加以下配置 在conf中
<Service name="Catalina">
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="second" debug="0">
<Host appBase="F:\virtualhost1" autoDeploy="true" name="sitel" unpackWaRs="true">
<Context path="" docBase="." debug="0" />
</Host>
</Engine>
</Service>
tomcat的初始化一些配置项
1.关闭服务器端口
因为可以使用命令执行shutdown命令
所以出于安全的角度建议修改 shutdown 端口名称
2.隐藏版本信息
版本信息在:lib目录下的catalina.jar\org\apache\catalina\util里面的ServerInfo.properties文件中
修改,重启启动即可
3.禁用Tomcat管理页面
防止信息泄露 删除或修改webapps下的ROOT文件即可
4.自定义错误页面
在web.xml中新增错误页面配置
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
再指定的location中新增错误页面即可 当然也可以加500 、503等等
5.ajp端口管理
如果使用nginx就可以不使用连接器,在serve.xml中注释即可
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8190" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443" URIEncoding="UTF-8"/>
6.启用cookie的HttpOnly提高安全性
cookie保存在客户端的纯文本文件
为了防止黑客XSS攻击,所以设置cookie加密设置
在conf目录中的context.xml中加入如下,即可
7.安全规范
1.账号管理、认证授权
添加共享的账号,删除无关的账号,防止信息的泄露
在conf目录中的tomcat-users.xml中加入如下,设置用户的账号权限和管理(建议全部去掉,不使用管理页面)
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
2.日志配置操作
在conf目录中的server.xml中的host标签中加入如下,即可
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
className:引用的是 catalina 的log日志的一个包
directory:日志文件存放的目录
prefix:日志文件的名称前缀
suffix:日志文件的名称后缀
pattern:记录日志的打印时间和ip
3.设备其他配置操作
对于数据交互的界面应该支持定时的账户自动登出
在conf目录中的server.xml中Connector表签中connectionTimeout时间设置,会按照时间设置来进行登出
优化配置
缓存优化
对于静态页面和一些图片都可以使用nginx来进行缓存,当然如果需要解压缩文件,也可以设置gzip进行压缩文件
总的来说就是一些高频率访问的东西,可以放到缓存中,这样不仅是对于服务器的解压,也会提高用户体验
运行模式
BIO:tomcat7以下的默认模式
NIO:基于缓存区、非阻塞的I/O
APR:tomcat7以上默认模式