1:配置多个tomcat,(也可单个) tomcat官网
1.下载tomcat
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.47/bin/apache-tomcat-8.5.47.tar.gz
2.解压
tar -xvf 名称
3.重命名,并复制多个出来(如果只需要配置一个,就不需要复制了)
mv 文件名称 新文件名称
4.配置环境变量 vi /etc/profile 添加如下 (如果只需要配置一个,就写下面一个就好了)
#tomcat1
export CATALINA_BASE=/usr/local/tomcat8_hars_web
export CATALINA_HOME=$CATALINA_BASE
export TOMCAT_HOME=$CATALINA_BASE
#tomcat2
export CATALINA_2_BASE=/usr/local/tomcat8_hars_admin
export CATALINA_2_HOME=$CATALINA_2_BASE
export TOMCAT_2_HOME=$CATALINA_2_BASE
#tomcat3
export CATALINA_3_BASE=/usr/local/tomcat8_hars_h5
export CATALINA_3_HOME=$CATALINA_3_BASE
export TOMCAT_3_HOME=$CATALINA_3_BASE
保存退出 后执行该命令:source /etc/profile
5.修改对应tomcat中的 bin/catalina.sh 以第二个tomcat为例
# 修改 和 /etc/profile 中的 变量相同
## OS specific support. $var _must_ be set to either true or false. 在这个下面添加
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
保存退出后执行该命令
chmod 777 catalina.sh
6.修改 tomcat的配置文件 conf/server.xml 修改端口即可,防止端口占用,修改下面的port即可
<Connector port="7080" protocol="HTTP/1.1"
connectionTimeout="30000"
maxHttpHeaderSize="20480"
minSpareThreads="20"
maxSpareThreads="50"
maxThreads="500"
acceptCount="500"
maxProcessors="1000"
minProcessors="5"
useURIValidationHack="false"
enableLookups="false"
redirectPort="8443"/>
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="7088" protocol="AJP/1.3" redirectPort="8443" />
2.静态部署配置
ps:静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。以下3种方式都可以部署:(以harsWeb项目为例说明,harsWeb目录假设是/usr/local/harsWeb)
1.利用Tomcat自动部署
1.1:将项目放在tomcat下面的webapp下面,然后启动服务器就可以了,Tomcat启动时将自动加载应用。
1.2:访问地址如下:http://localhost:8080/harsWeb/
2.修改Server.xml文件部署(如果部署是war包,docBase需要是war包的全名,例如 :/usr/local/harsWeb.war )
2.1:这种方式可以不必将harsWeb目录拷贝到webapps下,直接在/usr/local/harsWeb部署。方法如下,更改conf/server.xml文件,
2.2:修改如下:在Host标签下添加
<Context path ="/has" reloadable ="false" docBase ="/usr/local/harsWeb" workDir ="/usr/local/harsWeb/work"/>
reloadable:表示可以在运行时在classes与lib文件夹下自动加载类包。其中reloadable="false"表示当应用程序 中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。
docbase:表示应用程序的路径,注意斜杠的方向“/”。 docBase可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps。
workdir:表示缓存文件的放置地址,是指Tomcat解析Jsp转换为Java文件,并编译为class存放的文件夹,设置在项目文件夹里面,可以避免移植到其他地方首次读取jsp文件需要重新解析 。一般格式:项目文件夹/work
2.3:访问地址如下:http://localhost:8080/has/
3.增加自定义web部署文件 (如果部署是war包,docBase需要是war包的全名,例如 :/usr/local/harsWeb.war )
3.1:这种方式和方法2差不多,但不是在Server.xml文件中添加Context标签,而是在conf/Catalina/localhost中添加一个xml文件
3.2:前往conf/Catalina/localhost下面,复制任意一个xml,注意:文件名将作为path值,然后根据方法二中修改xml里面的值,例如 :
<Context path ="/has" reloadable ="false" docBase ="/usr/local/harsWeb" workDir ="/usr/local/harsWeb/work"/>
3.3:访问地址如下:http://localhost:8080/has/
3.tomcat安全配置
一、版本安全
升级当前的tomcat版本为最新稳定版本。
故名思议,最新稳定版本就要兼顾最新和稳定这两个概念。
一个稳定的版本,是需要时间沉淀的,而最新又是相对于稳定版而言的最新。
因此我们一般会选择当前大版本中,最新版本往前推几个版本或者往前推几个月出的版本。
目前,企业常用的tomcat大版本为6.0和7.0版本,8.0版本虽然已经出了很久了,但是仍然不建议使用。
在升级版本中,需要注意的事情有两点:
1、尽量避免跨大版本的升级
2、将当前老版本 tomcat 的server.xml、catalina.sh、web.xml和tomcat-users.xml文件进行备份,
然后部署完新版本的 tomcat 之后,将这些配置文件覆盖过去即可,然后停掉旧版本,启动新版本即可完成升级操作。
二、隐藏版本信息
为了避免黑客针对某些版本进行攻击,因此我们需要隐藏或者伪装 Tomcat 的版本信息。
[root@localhost ~]# cd /usr/local/apache-tomcat-7.0.53/lib
[root@localhost lib]# mkdir -p org/apache/catalina/util
[root@localhost lib]# cd org/apache/catalina/util
[root@localhost util]# vim ServerInfo.properties
server.info=nolinux # 如果想修改成其它版本号,把这个地方的值改成其它值就行了
三、优化 tomcat-user.xml
该文件含有用户名、角色以及密码的清单文件。负责提供webapps下manager项目的登录认证管理。
在生产环境中,我们需要将该文件全部注释。
四、优化 server.xml
1、maxThreads 连接数限制
maxThreads 是 Tomcat 所能接受最大连接数。一般设置不要超过8000以上,
如果你的网站访问量非常大可能使用运行多个Tomcat实例的方法,即,在一个服务器上启动多个tomcat然后做负载均衡处理。
2、管理AJP端口
AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。
如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。
由于我们公司前端是由nginx做的反向代理,因此不使用此连接器,因此需要注销掉该连接器。
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
3、更改 Tomcat 的服务监听端口
一般公司的 Tomcat 都是放在内网的,因此我们针对 Tomcat 服务的监听地址都是内网地址。
修改实例:
<Connector port="8080" address="172.16.100.1" />
4、关闭war自动部署
默认 Tomcat 是开启了对war包的热部署的。为了防止被植入木马等恶意程序,因此我们要关闭自动部署。
修改实例:
<Host name="localhost" appBase="" unpackWARs="false" autoDeploy="false">
五、禁用 Tomcat 管理页面
我们线上是不使用 Tomcat 默认提供的管理页面的,因此都会在初始化的时候就把这些页面删掉。这些页面是存放在 Tomcat 安装目录下的webapps目录下的。
我们只需要删除该目录下的所有文件即可。
当然,还有涉及管理页面的2个配置文件 host-manager.xml 和 manager.xml 也需要一并删掉。这两个文件存放在 Tomcat 安装目录下的conf/Catalina/localhost目录下。
六、用普通用户启动 Tomcat
为了进一步安全,我们不建议使用 root 来启动 Tomcat。这边建议使用专用用户 tomcat 或者 nobody 用户来启动 Tomcat。
在启动之前,需要对我们的tomcat 安装目录下所有文件的属主和属组都设置为指定用户。
七、分离 Tomcat 和项目的用户
为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。因此我们要将 Tomcat 和项目的属主做分离,这样子,即便被搞,他也无法创建和编辑项目文件。