# yum install java-1.8.0
# mkdir /data/soft -p
1、总目录
├── bin #脚本目录(启动,关闭Tomcat,.bat,.sh)
├── conf #配置文件目录(配置Tomcat的XML及DTD文件)
├── lib #存放web应用访问的JAR包
├── logs #日志目录(Catalina,其他日志文件)
├── temp #临时文件
├── webapps #Web应用程序根目录
└── work #产生JSP编译出的Servlet的.java和.class文件
2、webapps目录
docs #tomcat帮助文档
examples #web应用
host-manager #管理
manager #管理
ROOT #默认网站根目录
3、bin目录
startup.sh #启动脚本
shutdown.sh #关闭脚本
catalina.shtomcat #核心管理脚本(jvm优化参数及配置,tomcat启动参数)
方法1
方法2
方法3
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/tomcat/bin/catalina.sh start
ExecReload=/opt/tomcat/bin/catalina.sh restart
ExecStop=/opt/tomcat/bin/catalina.sh stop
User=tomcat
[Install]
WantedBy=multi-user.target
EOF
# ps -ef|grep tomcat
访问http:192.168.1.11:8080
server.xml #主配置文件
tomcat-users.xml #管理用户配置文件
# vim /opt/tomcat/conf/tomcat-users.xml
allow="10\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> #允许ip地址范围
1、格式
2、组成
① 顶级组件: 位于整个配置的顶层,如server
② 容器类组件: 包含其它组件的组件,如server,engine,host,context
③ 连接器组件: 连接请求,如connector
④ 被嵌套类组件: 位于一个容器内,不能包含其它组件,如Valve,logger
3、组件详情
server: 在最顶层,整个tomcat容器,监听端口
service: 服务名,将connector关联到engine,一个service内只能有一个引擎engine,可有多个connector
connector: 接收用户请求,客户端和service之间的连接
engine: 核心容器组件,catalina引擎,负责接受并处理connector请求,将请求转到对应的虚拟主机host
host: 虚拟主机,支持基于FQDN的虚拟主机
context: 一个web应用程序,warapp文件路径,web应用程序url的前缀,webapp部署方式
Valve: 阀门,拦截请求并将其转到对应的webapp前过滤,如记录日志,IP访问控制,用于任何容器中
logger: 日志记录器,记录组件内部的状态信息,用于除context外的任何容器中
realm: 存放用户名,密码及role的数据库,用于任意容器的组件中
UserDatabaseRealm: 用JNDI自定义的用户认证库
MemoryRealm: 认证信息定义在tomcat-users.xml中
JDBCRealm: 认证信息定义在数据库中,并通过JDBC连接至数据库查找认证用户
# vim server.xml
元素名
属性
解释
server
address
监听地址
port
监听关闭端口
shutdown
关闭命令字符串
service
name
service的名字
Connector
address
监听地址,默认0.0.0.0
port
监听端口
maxThreads
最大并发连接数,默认为200
maxConnections
允许建立的最大连接数
protocol
连接器使用的协议,支持HTTP和AJP
minProcessors
最小处理请求的线程数
maxProcessors
最大处理请求的线程数
enableLookups
是否开启DNS查询,true:返回主机名,false:返回ip地址
redirectPort
https端口
acceptCount
等待请求队列的最大长度
connectionTimeout
客户端发送请求的超时时间(单位毫秒)
keepAliveTimeout
长连接状态的超时时间
compression
是否压缩数据,off: 默认,on: 只压缩text,force: 压缩所有内容
Engine
name
引擎名称
defaultHost
处理请求的默认虚拟主机
Context
docBase
webapp的war包目录,相对路径或绝对路径
path
webapp的url的前缀,127.0.0.1:8080/path/webapp
reloadable
自动重载新的应用,目录:/WEB-INF/class和/WEB-INF/lib
cookies
是否启用cookie来标识session,默认为true
xmlNamespaceAware
和web.xml的解析方式有关,默认为true,设置为false可提升性能
xmlValidation
和web.xml的解析方式有关,默认为true,设置为false可提升性能
host
name
主机名
appBase
应用程序的目录,webapp应用路径
unpackWARs
是否自动WAR包,true:不解压,false:解压
autoDeploy
是否自动部署WAR包
xmlValidation
是否启动xml的校验功能
xmlNamespaceAware
检测名称空间,一般是false
xmlBase
虚拟主机的context xml目录
startStopThreads
启动context容器时的并行线程数
workDir
虚拟主机的工作目录
Realm
className
JAASRealm(基于Java Authintication and Authorization Service实现用户认证)
JDBCRealm(通过JDBC访问,关系型数据库表,实现用户认证)
JNDIRealm(基于JNDI,使用目录服务实现认证)
MemoryRealm(查找tomcat-user.xml文件,实现用户认证)
UserDatabaseRealm(基于UserDatabase文件(tomcat-user.xml)实现用户认证,兼容MemoryRealm,实现可更新和持久的MemoryRealm,通过JNDI实现)
Valve
AccessLogValve
访问日志
ExtendedAccessValve
扩展功能的访问日志
JDBCAccessLogValve
通过JDBC将访问日志信息发送到数据库中
RequestDumperValve
请求转储
RemoteAddrValve
基于远程地址的访问控制
RemoteHostValve
基于远程主机名称的访问控制
SemaphoreValve
用于控制Tomcat主机上任何容器上的并发访问数量
ReplicationValve
用于Tomcat集群中,在请求session信息发生更改时,触发session数据,在各节点间进行复制
SingleSignOn
两个或多个webapp需要用户认证,webapp统一认证用户,即一次认证,就可访问所有webapp的连接
8080: http监听端口
8443: https监听端口
8005: 监听的关闭端口
8009: 反向代理tomcat的时用的端口,基于ajp协议
1、上传软件包
2、访问测试
访问: http://192.168.1.11/memtest/meminfo.jsp
1、修改默认站点目录
2、访问测试
访问: http://192.168.1.11/meminfo.jsp
# yum install mariadb mariadb-server
mysql> create database jpress DEFAULT CHARACTER SET utf8;
mysql> grant all on jpress.* to jpress@'192.168.1.%' identified by '123456';
mysql> flush privileges;
# cd /opt/tomcat/webapps
浏览器访问: http://192.168.1.11:8080/jpress/
# /opt/tomcat/bin/shutdown.sh
1、写一篇文章并上传附件
2、上传文件的路径
3、文章内容在数据库的位置
mysql> select * from jpress.jpress_content\G
id: 1
title: 测试页面
text:
测试第一个
# https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.20 #zabbix-server地址
ServerActive=192.168.1.20 #zabbix-server地址
Hostname=Zabbix server #zabbix-server主机名
Include=/etc/zabbix/zabbix_agentd.d/*.conf
# vim /opt/tomcat/bin/catalina.sh
#!/bin/sh #添加到最前面
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345 #远程端口
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.1.11" #tomcat地址
# tail -1 /etc/hosts
192.168.1.11 tomcat01
# ps -ef | grep java
1、安装java
2、安装zabbix-java-gateway服务
3、修改zabbix_server.conf配置文件
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
4、重启zabbix服务
5、zabbix网页操作
# cd /opt/
1、修改端口号(实例一)
2、修改端口号(实例二)
3、修改或删除自定义的配置路径
# /opt/tomcat_01/bin/startup.sh
# ss -lntup|grep java
实例一: http://192.168.1.11:8081/jpress/
实例二: http://192.168.1.11:8082/jpress/
# yum install nginx -y
# vim /etc/nginx/conf.d/proxy.conf
upstream java {
server 192.168.1.11:8081;
server 192.168.1.11:8082;
}
server {
listen 80;
server_name www.test.com;
root html;
index index.html index.htm;
location / {
proxy_pass http://java;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# nginx -t
# cp -a apache-tomcat-8.0.27 /home/test/tomcat
$ ./tomcat/bin/startup.sh
# vim server.xml(更改端口)
# vim server.xml
# cd /opt/tomcat/webapps/
# vim /application/tomcat/conf/server.xml
# vim /usr/java/jdk1.8.0_181-amd64/jre/lib/security/java.security
securerandom.source=file:/dev/urandom
# vim catalina.sh
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m
-XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m"
-server #JVM的server模式
-Xms #堆内存初始值(推荐:物理内存的一半)
-Xmx #堆内存最大值(xms和xmx的配置相同的值)
-XX:NewSize #堆区,新生代初始值
-XX:MaxNewSize #堆区,新生代最大值
-XX:PermSize #非堆区,持久代(方法区)初始值
-XX:MaxPermSize #非堆区,持久代(方法区)最大值
-Xmn #同时配置新生代初始值和最大值(JDK1.4之后支持)
-Xss #每个线程的堆栈大小(最佳:128K,默认:512k)
+XX:AggressiveHeap #java堆最佳化设置,会忽略Xmx参数
-verbose:gc #输出JVM gc日志
-Xloggc:gc.log #指定gc日志目录
-XX:+UseParNewGC #并行多线程收集,对年轻代进行GC
-XX:+UseConcMarkSweepGC #用CMS收集器,对年老代进行GC
1、解包
2、打包
3、jar 命令参数
-M: 不创建文件的清单文件(Manifest.mf),该参数会忽略掉-m参数
-0: 不压缩,仅存储
1、直接用ansible的shell模块,启动不了,要chdir切换工作目录,并结合nohub放在后台启动
2、用system管理
1) 创建用户
2) 编辑服务启动脚本
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/tomcat/bin/catalina.sh start
ExecReload=/opt/tomcat/bin/catalina.sh restart
ExecStop=/opt/tomcat/bin/catalina.sh stop
User=tomcat
[Install]
WantedBy=multi-user.target
3) 测试启动服务
手机扫一扫
移动阅读更方便
你可能感兴趣的文章