首页 > 代码库 > 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用户 部署 生产环境