CentOS7+Tomcat 生产系统部署
1 准备OS账户
安全起见,本着最小权限原则,生产系统决不允许使用root账户来运行tomcat。为此,建立新账户tomcat,并设定登录密码。
useradd tomcat
passwd tomcat
2 配置防火墙放行8080端口并做80端口映射
在/etc/firewalld/services/目录下新建一个名为tomcat.xml的文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Tomcat Webserver</short>
<description>HTTPS is a modified HTTP used to serve Web pages when security is important. Examples are sites that require logins like stores or web mail. This option is not required for viewing pages locally or developing Web pages. You need the httpd package installed for this option to be useful.</description>
<port protocol="tcp" port="8080"/>
</service>
然后把此服务加入防火墙规则中
firewall-cmd --reload
firewall-cmd --add-service=tomcat
firewall-cmd --permanent --add-service=tomcat
由于非root用户不能侦听1023以下端口,所以这里采用一个变通的方法,就是利用firewalld在数据包路由之前进行端口转发,把所有发往80的tcp包转发到8080即可。
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
此后tomcat就相当于同时侦听80和8080两个端口了。
此后的步骤均是在tomcat账户环境下进行。
3 以tomcat用户绿色安装JDK和TOMCAT
(1)下载JDK之后直接加上可执行权限执行,然后配置环境变量
[root@master mnt]# ./jdk-6u45-linux-x64.bin
[root@master mnt]# cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export JAVA_HOME=/mnt/jdk1.6.0_45
export CLASSPATH=:$JAVA_HOME:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
(2)Tomcat真的是非常的简洁,属于纯绿色软件,直接下载下来解压就完成了安装。稍加配置即可顺利运行,具体的配置步骤参见$CATALINA_HOME/RUNNING.txt文件,说的非常清楚。基本原理是:Tomcat已经做了控制启动与停止的脚本bin/catalina.sh,此脚本顺利执行的唯一必须前提是,知道JDK安装路径。Tomcat官方建议新建一个bin/setevn.sh的文件,并在其中设置环境变量JAVA_HOME,因为catalina.sh文件里会自动读取setenv.sh。启动脚本会根据JAVA_HOME自动设置CLASSPATH以及CATALINA_HOME等其他环境变量,无需用户直接参与。
此后就可以通过bin/catalina.sh start来启动,通过bin/catalina.sh stop来关闭Tomcat了。