zoukankan      html  css  js  c++  java
  • Tomcat以Daemon的方式启动(CentOS6&7)

    1 前言

    一直以来都觉得Tomcat以root身份运行非常不安全,故研究Tomcat如何以普通用户身份运行,以下是参考网络上的一些配置实现Tomcat以daemon方式运行于CentOS 6&7系统下面。

    2 实践部分

    2.1 环境配置

    2.1.1 系统环境

    ipaddress=10.168.0.157

    OS=CentOS 6&7

    2.1.2 配置编译环境

    yum -y install gcc gcc-c++ make expat-devel
     

    2.1.3 下载JDK

    1)下载页面:

    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    2)下载选择

    请选择“jdk-8u111-linux-x64.tar.gz”下载,命令行如下:

    wget http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz?AuthParam=1479977626_06aed8a715c8fbbc10f72c89ee38910b
     

    2.1.4 下载Tomcat

    1)下载页面

    http://tomcat.apache.org/

    2)下载选择

    请选择“Tomcat 9.0.0.M13”下载(注意选择“Binary Distributions”)版本,命令行如下:

    wget http://apache.fayea.com/tomcat/tomcat-9/v9.0.0.M13/bin/apache-tomcat-9.0.0.M13.tar.gz
     

    2.1.5 配置防火墙

    In CentOS 6

    vim /etc/sysconfig/iptables
     

    增加如下行:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
     

    重启防火墙使服务生效

    /etc/init.d/iptables restart
     

    In CentOS 7

    firewall-cmd --permanent --add-port=8080/tcp
    firewall-cmd --reload
    firewall-cmd --list-all
     

    2.2 配置JDK

    2.2.1 创建java目录

    mkdir /usr/java
     

    2.2.2 解压

    tar xf jdk-8u111-linux-x64.tar.gz
    mv jdk1.8.0_111 /usr/java/
     

    2.2.3 配置环境变量

    vim /etc/profile
     

    末尾加入如下内容:

    export JAVA_HOME=/usr/java/jdk1.8.0_111
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
     

    注:以上配置只是为了下面的daemon环境的编译,编译完可以注释

    2.2.4 配置生效

    source /etc/profile
     

    2.2.5 环境变量测试

    java -version
     

    2.3 配置Tomcat

    2.3.1 创建tomcat目录

    mkdir /usr/tomcat
     

    2.3.2 解压

    tar -xf apache-tomcat-9.0.0.M13.tar.gz
    mv apache-tomcat-9.0.0.M13 /usr/tomcat/
     

    2.3.3 配置环境变量

    vim /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh
     

    输入如下配置

    JAVA_HOME=/usr/java/jdk1.8.0_111
    JRE_HOME=${JAVA_HOME}/jre
    CATALINA_HOME=/usr/tomcat/apache-tomcat-9.0.0.M13
    CATALINA_BASE=${CATALINA_HOME}
    JAVA_OPTS='-server -Xms2048m -Xmx4096m -Xss512k'
     

    环境变量配置请参考以下命令输出的内容:

    grep '^#' /usr/tomcat/apache-tomcat-9.0.0.M13/bin/catalina.sh
     

    2.3.4 解压daemon工具包

    tar -xf /usr/tomcat/apache-tomcat-9.0.0.M13/bin/commons-daemon-native.tar.gz
     

    2.3.5 编译daemon工具包

    cd /usr/tomcat/apache-tomcat-9.0.0.M13/bin/commons-daemon-1.0.15-native-src/unix/
    ./configure
    make
     

    2.3.6 配置daemon运行环境

    cp jsvc /usr/tomcat/apache-tomcat-9.0.0.M13/bin/
    useradd -M -d /usr/tomcat/apache-tomcat-9.0.0.M13/ -s /sbin/nologin tomcat
    chown -R tomcat: /usr/tomcat/apache-tomcat-9.0.0.M13
     

    2.3.7 手动测试服务启停

    sudo -u tomcat /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start
    sudo -u tomcat /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop
     

    确认服务正常启动与关闭:

    netstat -antp
     

    浏览器测试确认:

    http://10.168.0.157:8080/

    wKioL1g74fjwykvxAAJK_eYL5d8442.png

    2.3.8 启动服务与配置服务开机启动

    In CentOS 6

    ln -s /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh /etc/init.d/tomcat9
    /etc/init.d/tomcat9 start
    vim /etc/init.d/tomcat9
     

    第二行加入如下内容:

    # chkconfig: 2345 55 25
     

    配置服务自启动:

    chkconfig tomcat9 on
     

    In CentOS 7

    vim /lib/systemd/system/tomcat9.service
     

    输入如下内容:

    [Unit]
    Description=seafile
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start
    ExecReload=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh restart
    ExecStop=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
     

    测试服务运行

    systemctl start tomcat9.service
    systemctl restart tomcat9.service
    systemctl stop tomcat9.service
     

    配置服务自启动

    systemctl enable tomcat9.service
     

    ===============================================================

  • 相关阅读:
    聊聊关于性能优化和其他(一)
    JavaScript 事件循环及异步原理(完全指北)
    SPA路由机制详解(看不懂不要钱~~)
    Web安全系列(三):XSS 攻击进阶(挖掘漏洞)
    Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)
    浅谈Generator和Promise原理及实现
    Kubernetes 服务目录
    Kubernetes 网络模型
    个人开源贡献记录
    【转载】DTO – 服务实现中的核心数据
  • 原文地址:https://www.cnblogs.com/beyang/p/10525150.html
Copyright © 2011-2022 走看看