设为首页 收藏本站
查看: 850|回复: 0

[经验分享] Tomcat 9.0 7 的两种开机启动方式与web页面管理

[复制链接]

尚未签到

发表于 2018-11-30 08:21:51 | 显示全部楼层 |阅读模式
项目环境

系统平台:
CentOS Linux release 7.4.1708 (Core)       内核  3.10.0-693.el7.x86_64   最小化安装
配置jdk环境
  去oracle官网下载 符合项目需求的 组件 Java SE Development Kit 8u162

http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz
# cd /usr/local/
# tar xvf jdk-8u162-linux-x64.tar.gz -C /usr/local/
# ln -sv jdk1.8.0_162/ javajdk
# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/javajdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
# source /etc/profile.d/java.sh
# java -version
java version "1.8.0_162"
配置tomcat

去官网下载适合的版本
  https://tomcat.apache.org/

http://apache.mirrors.pair.com/tomcat/tomcat-9/v9.0.7/bin/apache-tomcat-9.0.7.tar.gz
# tar xvf apache-tomcat-9.0.7.tar.gz -C /usr/local/
# cd /usr/local/
# mv apache-tomcat-9.0.7/ tomcat-9.0.7
# ln -sv tomcat-9.0.7/ tomcat
配置tomcat环境变量

# vim /etc/profile.d/tomcat.sh
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH
配置tomcat开机启动

方法一:通过catalina.sh
  直接调用$CATALINA_HOME/bin/startup.sh来启动tomcat,调用$CATALINA_HOME/bin/shutdown.sh来关闭tomcat
  tomcat 进程是由 root 用户打开并维护的,从安全角度考虑存在缺陷。

# vim /usr/local/tomcat/bin/catalina.sh
在第二行写入
JAVA_HOME=/usr/local/javajdk
CATALINA_BASE=/usr/local/tomcat
# echo "/usr/local/tomcat/bin/catalina.sh start" >> /etc/rc.local
# chmod +x /etc/rc.local  > 这一步很重要
方法二:以daemon方式
  以daemon方式运行tomcat可以使tomcat不受终端影响,不会因为退出终端而停止运行。可以让tomcat以普通用户身份运行,可以让tomcat在系统启动时自动运行。
  Jsvc是专为Java应用程序开发的一个工具包,其目标是把Java应用程序的普通运行转换为以Unix守护进程的方式运行。这样的话,可以很方便地启动/停止应用程序。
  在安装tomcat的目录bin/下commons-daemon-native.tar.gz或者http://commons.apache.org/proper/commons-daemon/download_daemon.cgi

# cd /usr/local/tomcat-9.0.7/bin/
# tar xvf commons-daemon-native.tar.gz
# cd commons-daemon-1.1.0-native-src/unix/
# ./configure
# make
# cp jsvc /usr/local/tomcat/bin/
创建Tomcat用户

# useradd -r -s /sbin/nologin tomcat
# chown -R tomcat /usr/local/tomcat/
配置用systemd启动方式的脚本
  catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此需要在/usr/local/tomcat/bin路径下创建setenv.sh文件,这个文件还可以设置JVM调优参数,是不是很方便

# vim /usr/local/tomcat/bin/setenv.sh
export JAVA_HOME=/usr/local/javajdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$CATALINA_BASE/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$CATALINA_BASE/bin:$PATH
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

  服务脚本

# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat8
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/daemon.sh start
ExecStop=/bin/kill -s QUIT $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
之后可以使用以下方式管理了
# systemctl status tomcat       状态
# systemctl start tomcat        启动
# systemctl stop tomcat         停止
如果启动的时候提示以下,请查看此文件权限。
touch: cannot touch ‘/usr/local/tomcat/logs/catalina.out’: Permission denied
可以看到是以jsvc进行运行
# ss -nltp|grep 8080
LISTEN     0      100         :::8080                    :::*                   users:(("jsvc",pid=2953,fd=49))
以普通用户权限运行
# ps aux|grep tomcat
tomcat     3169
  在启动的时候会在tomcat根目录生成tomcat.pid文件,停止之后删除。
  同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。
  多个tomcat可以配置在多个目录下,互不影响。

配置tomcat Web 管理

# cd /usr/local/tomcat/conf/
# cp tomcat-users.xml{,.bak}
# vim tomcat-users.xml

角色定义

1、Server Status
  查看只读服务器状态

2、Manager App
  管理app,包括war包服务的启动、停止、reload、undeploy以及配置session的失效时间
  需要开启以下角色功能

manager-gui     允许访问html接口(即URL路径为/manager/html/*)
manager-script  允许访问纯文本接口(即URL路径为/manager/text/*)
manager-jmx     允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
manager-status  允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
3、Host Manager
  管理和配置Tomcat服务器
  需要开启以下角色功能

manager-gui     允许访问html接口(即URL路径为/manager/html/*)
admin-gui       允许访问html接口
admin-script    允许访问纯文本接口
  ###
  4大角色5种功能的定义格式如下








  添加用户名称和密码格式,并授权访问角色如下





  除了密码限制之外,还可以通过添加或来限制远程IP地址或主机对Manager Web应用程序的访问权限,特别是在公网上的主机。参考网址https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Remote_Address_Filter

以下2行看需要设置
# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
添加允许访问的IP范围,否则只能本机访问





修改tomcat允许上传的文件大小
  单位是字节

   

52428800
52428800
0


  以上配置需要重启tomcat服务才能生效




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641369-1-1.html 上篇帖子: [1]supervisor的使用管理:实现对异常中断的子进程的自动重启(以tomcat为例) 下篇帖子: tomcat安全优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表