tomcat--安全配置&&多虚拟机

端口8005/tcp 安全配置管理

  • 8005是Tomcat的管理端口,默认监听在127.0.0.1上。无需验证就可发送SHUTDOWN (大小写敏感)这个字符串,tomcat接收到后就会关闭此Server。
  • 此管理功能建议禁用,可将SHUTDOWN改为一串猜不出的字符串实现或者port修改成 0, 会使用随机端口,如:36913
  • port设为-1等无效端口,将关闭此功能
  • 此行不能被注释,否则无法启动tomcat服务

/usr/local/apache-tomcat-8.5.100/conf/server.xml

复制代码
<Server port="8005" shutdown="SHUTDOWN">

输入SHUTDOWN关闭tomcat

查看状态

关闭tomcat

再次查看状态

显示指定的http服务器版本信息

/usr/local/apache-tomcat-8.5.100/conf/server.xml

复制代码
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000" Server="xf"
               />

其他配置

conf/server.xml中可以配置service,connector, Engine,Host等

service

一般情况下,一个Server实例配置一个Service,name属性相当于该Service的ID

复制代码
<Service name="Catalina">

连接器配置

redirectPort,如果访问HTTPS协议,自动转向这个连接器。但大多数时候,Tomcat并不会开启

HTTPS,因为Tomcat往往部署在内部,HTTPS性能较差

复制代码
 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000" Server="xf"
               />

引擎配置

复制代码
 <Engine name="Catalina" defaultHost="localhost">

defaultHost 配置

defaultHost指向内部定义某虚拟主机。缺省虚拟主机可以改动,默认localhost。

复制代码
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

value配置

定义访问日志:org.apache.catalina.valves.AccessLogValve

定义访问控制:org.apache.catalina.valves.RemoteAddrValve

复制代码
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="10\.0\.0\.\d+"/>

Context 配置

Context作用

  • 路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能
  • 应用独立配置,例如单独配置应用日志、单独配置应用访问控制

字段说明

path:指的是访问的URL路径,如果path与appBase下面的子目录同名,context的docBase路径

优先更高

docBase:可以是磁盘文件的绝对路径,也可以是相对路径(相对于Host的appBase)

reloadable:true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。生产环境中,建议使用false来禁用

案例

前期准备
配置
复制代码
cat /usr/local/apache-tomcat-8.5.100/conf/server.xml 
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context path="/test" docBase="/data/app" reloadable="true" />
访问

多虚拟主机配置

  • name 必须是主机名,用主机名来匹配
  • appBase 当前主机的网页根目录,是相对于 $CATALINA_HOME ,也可以使用绝对路径
  • unpackWARs 是否自动解压war格式
  • autoDeploy 热部署,自动加载并运行应用

前期准备

mkdir -pv /data/webapps/ROOT

chown -R tomcat:tomcat /data/webapps/

echo "www.xxx.com" > /data/webapps/ROOT/index.htm

虚拟主机配置

复制代码
vim /usr/local/apache-tomcat-8.5.100/conf/server.xml 
   <Host name="www.xxx.com"  appBase="/data/webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />


不加日志
<Host name="web1.magedu.org" appBase="/data/webapps/" unpackWARs="True"
autoDeploy="false"/>

重启

systemctl restart tomcat

systemctl status tomcat

访问

修改端口

虚拟主机配置

复制代码
vim /usr/local/apache-tomcat-8.5.100/conf/server.xml 
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               />

查看日志

tail -f /usr/local/tomcat/logs/catalina.out

修改service

复制代码
[root@localhost ~]# cat /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/usr/local/apache-tomcat-8.5.100/conf/tomcat.conf
ExecStart=/usr/local/apache-tomcat-8.5.100/bin/startup.sh
ExecStop=/usr/local/apache-tomcat-8.5.100/bin/shutdown.sh
PrivateTmp=true
#User=tomcat  注释掉
#Group=tomcat  注释掉
[Install]
WantedBy=multi-user.target

重启

systemctl daemon-reload

systemctl restart tomcat.service

访问

相关推荐
隔窗听雨眠9 分钟前
CI/CD测试数据清理完全指南:从污染根因到三层清理覆盖的完整方案
java·数据库·ci/cd
Query*14 分钟前
Agent 开发之项目 AI 能力自我进化:通过浏览器自动化与数据采集实现持续学习
java·人工智能·ai·自动化
盟接之桥23 分钟前
半导体供应链破局:EDI如何成为中国制造的数字通行证
大数据·运维·服务器·网络·数据库·人工智能·制造
晓晓_za89866825 分钟前
GEO 搜索源码白帽合规改造:适配各大 AI 信源收录规则
java·开发语言·人工智能·性能优化·开源
Haooog26 分钟前
从 Tool Calling 到 State 并发控制:一个 Agent 如何安全地连续执行任务
java·agent·后端开发
其实防守也摸鱼34 分钟前
ZLibrary 类项目合规避坑指南:从技术实现到法律风险的全景梳理
运维·服务器·数据库·安全·自动化·github·copilot
君顾142 分钟前
从0到1课后辅导管理系统开发实战:需求文档、架构设计全复盘
java·开发语言
NeoGressAI外贸数字化1 小时前
外贸建站:新手怎么自建独立站完整指南
java·人工智能
前端 贾公子1 小时前
第09章:上下文与记忆 (4)
java·服务器·前端
BangD1 小时前
visual stdio解决中文乱码问题
服务器