项目环境
系统平台:
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 启动方式的脚本
- # vim /usr/lib/systemd/system/tomcat.service
- [Unit]
- Description=Apache Tomcat web Application Container
- After=syslog.target network.target
- [Service]
- Type=forking
- EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
- ExecStart=/usr/local/tomcat/bin/daemon.sh start
- ExecStop=/usr/local/tomcat/bin/daemon.sh stop
- SuccessExitStatus=143
- User=tomcat
- Group=tomcat
- [Install]
- WantedBy=multi-user.target
参数配置文件
- # vim /usr/local/tomcat/conf/tomcat.conf
- JAVA_HOME="/usr/local/javajdk"
- CATALINA_BASE="/usr/local/tomcat"
- CATALINA_HOME="/usr/local/tomcat"
- TOMCAT_USER="tomcat"
- #JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"> 调优使用
之后可以使用以下方式管理了
- # systemctl status tomcat 状态
- # systemctl start tomcat 启动
- # systemctl stop tomcat 停止
可以看到是以 jsvc 进行运行
- # ss -nltp|grep 8080
- LISTEN 0 100 :::8080 :::* users:(("jsvc",pid=2953,fd=49))
配置 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 种功能的定义格式如下
- <role rolename="admin-gui"/>
- <role rolename="manager-gui"/>
- <role rolename="manager-script"/>
- <role rolename="manager-jmx"/>
- <role rolename="manager-status"/>
添加用户名称和密码格式, 并授权访问角色如下
- <user username="用户名" password="密码" roles="这里是角色如: admin-gui,manager-gui"/>
- <user username="tomcat" password="123abc" roles="admin-gui,manager-gui"/>
除了密码限制之外, 还可以通过添加或来限制远程 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 范围, 否则只能本机访问
- <Context antiResourceLocking="false" privileged="true">
- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
- allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.10\.\d+" />
- <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.f
- ilters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
- </Context>
修改 tomcat 允许上传的文件大小
单位是字节
- <multipart-config>
- <!-- 50MB max -->
- <max-file-size>52428800</max-file-size>
- <max-request-size>52428800</max-request-size>
- <file-size-threshold>0</file-size-threshold>
- </multipart-config>
以上配置需要重启 tomcat 服务才能生效
来源: http://www.bubuko.com/infodetail-2567588.html