CentOS 6.5上安装并配置Tomcat
一、下载并安装jdk到oracle官网下载jdk,然后上传到CentOS上。
cd /opt/tools/
# ll jdk-8u101-linux-i586.tar.gz apache-tomcat-7.0.72.tar.gz
-rw-r--r-- 1 root root 8931288 Sep 14 20:39 apache-tomcat-7.0.72.tar.gz
-rw-r--r-- 1 root root 183456778 Oct4 20:19 jdk-8u101-linux-i586.tar.gz
tar -zxf jdk-8u101-linux-i586.tar.gz
mv jdk1.8.0_101 /usr/local/jdk
chown -R root:root /usr/local/jdk 下面配置JAVA环境变量:
echo '#Add java env below' >>/etc/profile
echo 'export JAVA_HOME=/usr/local/jdk' >>/etc/profile
echo 'export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOME/bin:$PATH' >>/etc/profile
echo 'export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' >>/etc/profile
echo 'export TOMCAT_HOME=/usr/local/tomcat' >>/etc/profile
echo '#java env ended' >>/etc/profile
source /etc/profile # tail -6 /etc/profile
#Add java env below
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
#java env ended
测试是否安装成功:
# echo $JAVA_HOME
/usr/local/jdk
# java -version
-bash: /usr/local/jdk/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
解决方法:
yum -y install ld-linux.so.2
# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) Client VM (build 25.101-b13, mixed mode)
# jps -lvm
1180 sun.tools.jps.Jps -lvm -Denv.class.path=:/usr/local/jdk/lib:/usr/local/jdk/jre/lib:/usr/local/jdk/lib/tools.jar -Dapplication.home=/usr/local/jdk -Xms8m
二、安装tomcat
wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.72/bin/apache-tomcat-7.0.72.tar.gz
tar -zxf apache-tomcat-7.0.72.tar.gz
mv apache-tomcat-7.0.72 /usr/local/tomcat
chown -R root:root /usr/local/tomcat/ 三、启动tomcat
# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
# lsof -i :8080
COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1266 root 46uIPv613514 0t0TCP *:webcache (LISTEN)
# netstat -lnt|grep 8080
tcp 0 0 :::8080 :::* LISTEN
# ps -ef|grep java
root 1266 12 21:33 pts/0 00:00:05 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 1298 10520 21:36 pts/0 00:00:00 grep javahttp://s3.运维网.com/wyfs02/M01/88/61/wKiom1fztzWCOUhxAANmOYRH4yk809.jpg-wh_500x0-wm_3-wmp_4-s_608317808.jpg
打开浏览器,输入http://localhost:8080访问,可以看到tomcat的默认页面。
四、tomcat配置文件
# ll logs/
total 24
-rw-r--r-- 1 root root 5300 Oct4 21:33 catalina.2016-10-04.log#命令行输出日志
-rw-r--r-- 1 root root 5300 Oct4 21:33 catalina.out
-rw-r--r-- 1 root root 0 Oct4 21:33 host-manager.2016-10-04.log#jvm虚拟机管理日志
-rw-r--r-- 1 root root445 Oct4 21:33 localhost.2016-10-04.log#访问日志
-rw-r--r-- 1 root root908 Oct4 21:39 localhost_access_log.2016-10-04.txt
-rw-r--r-- 1 root root 0 Oct4 21:33 manager.2016-10-04.log#管理日志
# ll conf/
total 208
drwxr-xr-x 3 root root 4096 Oct4 21:33 Catalina
-rw------- 1 root root12257 Sep 14 20:15 catalina.policy
-rw------- 1 root root 6322 Sep 14 20:15 catalina.properties
-rw------- 1 root root 1394 Sep 14 20:15 context.xml
-rw------- 1 root root 3288 Sep 14 20:15 logging.properties
-rw------- 1 root root 6613 Sep 14 20:15 server.xml
-rw------- 1 root root 1950 Sep 14 20:15 tomcat-users.xml
-rw------- 1 root root 167655 Sep 14 20:15 web.xml
下面是一个tomcat配置文件的示例,附上对参数的解析:
factory
org.apache.catalina.users.MemoryUserDatabaseFactory
pathname
conf/tomcat-users.xml
五、配置tomcat管理用户
cd /usr/local/tomcat/conf/
vi tomcat-users.xml
添加如下内容:
然后重启tomcat服务:
../bin/shutdown.sh
../bin/startup.sh
浏览器访问:
http://s4.运维网.com/wyfs02/M00/88/5D/wKioL1fztxrReKuYAANyavXAdsY697.jpg-wh_500x0-wm_3-wmp_4-s_2937143037.jpg
打开tomcat默认页面,然后选择“Manager Appp”,然后在弹出的身份认证窗口中输入之前设置的密码,进行登录。
http://s2.运维网.com/wyfs02/M02/88/5D/wKioL1fzuBqRv6AGAAOzUv0ghDE737.jpg-wh_500x0-wm_3-wmp_4-s_2450454283.jpg
http://s1.运维网.com/wyfs02/M00/88/61/wKiom1fzuPPS_nbTAAP0bgFt5yY790.jpg-wh_500x0-wm_3-wmp_4-s_1516515748.jpg
这个就是tomcat的管理界面,有很多配置和管理相关的操作接口,由于安全性的问题,一般在服务器上也不会启动管理界面,所以这里只是了解一下。
六、tomcat安全设置
1、Telnet管理端口保护
server.xml中默认有如下一行:
这样允许任何人只要Telnet到服务器的8005端口,输入“SHUTDOWN”,回车,服务器就被关掉了。
安全设置: 1)修改默认的8005管理端口为其他端口(大于1024)
2)修改SHUTDOWN指令为其他字符串
示例配置: 这样的话,只有Telnet到服务器的8205端口,输入“c1gstudio”回车,才能关闭tomcat。
2、禁用管理端
Tomcat管理台的应用文件,默认在{Tomcat安装目录}\server\webapps下,有admin和manager两个应用。
其用户密码,在{Tomcat安装目录}\conf/tomcat-users.xml中定义。在{Tomcat安装目录}\webapps下
admin.xml和manager.xml文件定义了可以通过访问/admin和/manager进入。
默认情况下,完全可以登录tomcat管理台,造成严重安全问题
安全设置: 1)删除默认的tomcat安装目录下的conf/tomcat-users.xml文件,重启tomcat后会自动生成新的文件。
2)删除tomcat安装目录下webapps初始化的所有目录和文件。
示例配置:
3、文件列表访问控制
tomcat的安装目录下的conf/web.xml文件中的default部分有listings的配置。
listings
false
false为不列出目录文件,true为允许列出,默认为false。
4、隐藏版本信息
在配置中对一些常见错误进行重定向,避免当出现错误时tomcat默认显示的错误页面暴露服务器和版本信息。
安全设置: 1)修改conf/web.xml,重定向403、404以及500等错误到指定的错误页面
2)也可以通过修改应用程序目录下的WEB-INF/web.xml下的配置进行错误页面的重定向。
示例配置:
用记事本打开\conf\web.xml文件,在文件的倒数第二行(一行之前)加入以下内容:
403
/forbidden.jsp
404
/notfound.jsp
500
/systembusy.jsp
注意:必须确保程序根目录下的错误页面已经存在。
5、Server header重写
安全设置:在HTTP Connector配置中加入server的配置。
示例配置: server="webserver"
说明:当tomcat HTTP端口直接提供web服务时,此配置生效。加入此配置,将会替换http响应server header部分的默认配置,默认是Apache-Coyote/1.1。
6、访问限制
通过配置信任ip的白名单,拒绝非白名单ip的访问,此配置主要是针对高保密级别的系统,一般产品不需要。
安全设置:通过配置限定访问的ip来源
示例配置:
页:
[1]