首页 > 代码库 > Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境

Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境

一、安装Tomcat

下载链接:

http://mirrors.cnnic.cn/apache/tomcat/tomcat-6/v6.0.43/bin/apache-tomcat-6.0.43.zip

http://apache.fayea.com/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.zip

http://apache.fayea.com/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.zip

1.上传下载好的tomcat包,解压并拷贝到你需要安装的目录下,同时新建软链接指向tomcat目录。

# unzip apache-tomcat-6.0.43.zip# cp -r  apache-tomcat-6.0.43  /usr/local/tomcat-6.0.43# ln -s  /usr/local/tomcat-6.0.43 /user/local/tomcat

2.新建tomcat用户用于启动tomcat,主要是从安全上考虑,毕竟root用户权限太大,,,

# groupadd tomcat  #添加tomcat用户组## useradd -s /bin/bash -g tomcat tomcat #添加tomcat用户到tomcat用户组#
# usermod -L tomcat #锁定用户无法登录##
chown -R tomcat:tomcat /usr/local/tomcat #设置目录权限#

3.添加随机启动脚本

# vi /etc/rc.local

在最后面加入下面内容:

----------------------------------------------------------------

# tomcat随机启动命令(su 空格 tomcat 空格 -c 空格 ‘路径‘)

# su - tomcat -c /usr/local/tomcat/bin/startup.sh# su - tomcat -c /usr/local/tomcat/bin/catalina.sh start  #也可

---------------------------------------------------------------

reboot试试,JSP用ROOT启动不安全的问题解决了。

 

# su - tomcat -c /usr/local/tomcat/bin/shutdown.sh  #tomcat 停止命令。
# su - tomcat -c ‘/usr/local/tomcat/bin/catalina.sh stop‘ #也可

 

二、端口转发

非root用户其实没有绑定80端口的权限。在Linux下低于1024的端口是root专用,

而Tomcat安装后默认使用用户 tomcat启动的,所以将端口改为80后启动,

会产生错误:java.net.BindException: Permission denied:80。

解决方法是(两种):
1.修改应用的端口,考虑部署的应用较多,放弃这个相当简单的办法.
2.Iptables端口转发功能
第一步,重将Tomcat的端口(server.xml)由80改回8080。
第二步,通过Iptables端口实现80到8080的转发,命令为:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080# service iptables save# service iptables restart

这样,用户访问80端口和8080端口其实都到了8080端口。

 

三、增加查看tomca运行状态脚本

vi /usr/local/tomcat/bin/catalina.sh

在  大约 475 行左右的 else 代码段新增一个else判断

 elif [ "$1" = "version" ] ; then      "$_RUNJAVA"          -classpath "$CATALINA_HOME/lib/catalina.jar"        org.apache.catalina.util.ServerInfo elif [ "$1" = "status" ] ; then      ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk {printf $1 " "} | wc | awk {print $2} >/tmp/tomcat_process_count.txt         read line < /tmp/tomcat_process_count.txt     if [ $line -gt 0 ]; then         echo -n "tomcatd ( pid "         ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap     start" | awk ‘{printf $1 " "}‘         echo ") is running..."     else         echo "Tomcat is stopped"     fi else

好了,这样就可以查看tomcat的运行状态了,如果你的sh脚本功力不错的话,可以再加一个重启命令restart。

 

四、加大tomcat运行内存防止程序报异常[ java.lang.OutOfMemoryError: PermGen space ]

vi /usr/local/tomcat/bin/catalina.sh

 

在脚本开始执行的最前头设置如下配置:

JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss1024k -XX:PermSize=256M -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m -Djava.awt.headless=true"

红色字体请根据自己服务器的实际配置酌情增大或减小。

 

 

借鉴:

http://www.linuxidc.com/Linux/2012-09/70481.htm

http://www.cnblogs.com/ebs-blog/archive/2010/10/14/2167288.html

http://blog.csdn.net/cnfixit/article/details/7030666

http://blog.csdn.net/wuyigong111/article/details/17410661

http://wenku.baidu.com/link?url=yZXEqZFAG4WNVhiAOoh4uHy_eQ5FV3JSiNPRa9zbAZ1Wj3hNS6h2upCv0TgCqAcJnqNnxqAf5nRpYD_5r_-4JJRa4mdnkqqZwuvwg4gAmbG

 

Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境