window下tomcat 按天生成日志_LNMT架构部署(Tomcat服务)
一、Tomcat服务介绍
(一)、Tomcat服务概念介绍
官方资料:Apache Tomcat® - Welcome!
(二)、Tomcat服务名词解释
JVM(Java virtual machine)
JVM可以使Java程序在各种平台上运行
JRE(Java runtime environment)
Java运行环境,JRE中包含JVM
JDK(Java Development kit)
JRE+ java 组件或工具包
(三)、Tomcat服务端口信息介绍
8080:用户浏览器客户端进行访问页面端口信息
8009:用于和其他HTTP服务建立通讯
8005:接收关闭服务信号信息
二、Tomcat介绍
1、Tomcat是基于Java开发的web服务器软件
2、nginx仅处理静态资源,而Tomcat则支持Java开发的jsp动态资源和静态资源
3、企业会使用nginx+Tomcat结合使用。由nginx处理静态资源,Tomcat处理动态资源
4、nginx适合做前段负载均衡,而Tomcat适合做后端
三、Tomcat服务部署过程
(一)、JDK部署过程
第一步:下载并解压软件
官方下载链接
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
解压软件
tar xf jdk-8u60-linux-x64.tar.gz -C /application
ln -s /application/jdk1.8.0_60/ /application/jdk
第二步:设置java环境变量信息
cat >>/etc/profile<<'EOF'
export JAVA_HOME=/application/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
EOF
export JAVA_HOME=/application/jdk
<-- 定义jdk软件程序目录
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
<-- 定义jdk命令存在于环境变量中,可以直接使用
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
<-- 定义java程序运行所需的库文件环境变量(classpath)
检查是否设置成功
java -version
显示:java version "1.8.0_60"
(二)、Tomcat部署
第一步:下载并解压软件
官方下载链接
Tomcat 8 Software Downloads
解压软件
tar xf apache-tomcat-8.0.27.tar.gz -C /application/
ln -s /application/apache-tomcat-8.0.27/ /application/tomcat
第二步: 设置tomcat环境变量信息
vim /etc/profile
export TOMCAT_HOME=/application/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
第三步:修改目录权限信息
chown -R root.root /application/
第四步:开启tomcat服务程序
/application/tomcat/bin/startup.sh --- 启动tomcat程序
/application/tomcat/bin/shutdown.sh --- 关闭tomcat程序
netstat -lntup|grep java --- 查看Tomcat程序8080端口
Tomcat启动慢解决方案:修改如下配置文件
vim /usr/java/jdk1.8.0_102/jre/lib/security/java.security
#修改为如下信息
117 securerandom.source=file:/dev/urandom
四、Tomcat服务目录结构
bin --- tomcat程序命令信息
startup.sh --- 启动程序脚本文件
shutdown.sh --- 关闭程序脚本文件
关闭程序方法二:
echo "SHUTDOWN" | nc 127.0.0.1 8005
catalina.sh --- 被启动和关闭脚本所调用 优化JVM信息
conf --- tomcat程序配置文件
server.xml --- tomcat程序主配置文件
一个tomcat实例一个server
一个server中包含多个Connector(连接器),Connector的主要功能是接受、响应用户请求。
service的作用是:将connector关联至engine(catalina引擎)
一个host就是一个站点,类似于nginx的多站点
context类似于nginx中location的概念
tomcat-users.xml --- 用于在后台管理查看tomcat信息
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
lib --- tomcat程序所需库文件信息
LICENSE ---license文件
temp ---存放临时文件
work ---Tomcat运行时产生的缓存文件
logs --- tomcat程序日志文件信息
catalina.2020-03-25.log
说明:tomcat程序运行情况日志信息,此文件中的信息也会输出到catalina.out,应用向console输出日志不会出现在此文件
简单来说就是tomcat启动或停止运行日志文件
catalina.out
说明:程序标准输出和错误输出的信息都会记录到此文件中,并且包含向console输出的日志信息
简单来说就是tomcat程序运行过程中信息最全的日志文件,默认此文件不会自动切割
localhost.2020-03-25.log
说明:程序应用初始化未处理的异常信息会记录到此文件中,包含tomcat运行状态信息
localhost_access_log.2020-03-25.txt
说明:访问tomca程序日志文件 类似 nginx access日志文件
manager.2020-03-25.log
说明:管理tomcat服务日志信息
webapps --- tomcat程序默认站点目录
五、Tomcat服务部署应用
(一)、搭建jpress网站
第一步:编写配置文件
/application/tomcat/conf/server.xml
22 <Server port="8005" shutdown="SHUTDOWN"> #接收关闭服务信号端口
69 <Connector port="8080" protocol="HTTP/1.1" #接收用户访问HTTP请求端口信息
70 connectionTimeout="20000" #连接超时时间(默认毫秒)
71 redirectPort="8443" /> #接收用户访问HTTPS请求端口信息
91 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
#用于与其他http服务建立连接通讯端口信息
123 <Host name="localhost" appBase="webapps" #用于定义网站域名信息 站点目录信息
124 unpackWARs="true" autoDeploy="true"> #是否自动部署解压上传代码信息 war包(java代码)
135 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" #生成响应tomcat日志
136 prefix="localhost_access_log" suffix=".txt" #生成日志文件信息
137 pattern="%h %l %u %t "%r" %s %b" /> #访问日志格式
第二步:上传网站代码文件并重启Tomcat
/app/tomcat/bin/shutdown.sh
/app/tomcat/bin/startup.sh
第三步:网站初始化设置/与数据库建立连接
访问blog网站:http://blog.oldboy.com
创建数据库信息:create database jpress;
创建管理数据库用户信息:grant all on jpress.* to 'jpress'@'localhost' identified by 'oldboy123';
查看用户是否创建:select user,host from mysql.user;
第四步:直接访问网站
(二)、搭建zrlog网站
第一步:编写配置文件
vim /app/tomcat/conf/server.xml
#编写如下信息到“</Engine>”之前
<Host name="blog.oldqiang.com" appBase="/code" #设置域名及站点目录
unpackWARs="true" autoDeploy="true"> #自动解压war包,自动部署代码
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log" #设置日志保存位置
prefix="zrlog_access_log" suffix=".txt" #设置日志名称
pattern="%h %l %u %t "%r" %s %b" /> #设置日志格式
第二步:上传代码到站点目录
第三步:重启Tomcat
/app/tomcat/bin/shutdown.sh
/app/tomcat/bin/startup.sh
第四步:网站初始化设置/与数据库建立连接
访问blog网站:http://blog.oldqiang.com
创建数据库信息:create database zrlog;
创建管理数据库用户信息:grant all on zrlog.* to 'zrlog'@'10.0.0.%' identified by 'oldboy123';
查看用户是否创建:select user,host from mysql.user;
第五步:访问测试网站
六、nginx反向代理tomcat集群并实现http跳转https
nginx负载服务器中配置
第一步:上传证书文件
1、创建证书目录
mkdir /opt/cert -p
2、上传证书文件
3、解压证书文件到指定目录
unzip blog.oldqiang.com.zip -d /opt/cert
第二步:编写nginx配置文件
vim /etc/nginx/conf.d/zrlog.conf
upstream java {
server 10.0.0.11:8080;
server 10.0.0.12:8080;
}
server {
listen 443 ssl;
server_name blog.oldqiang.com;
ssl_certificate /opt/cert/Nginx/1_blog.oldqiang.com_bundle.crt;
ssl_certificate_key /opt/cert/Nginx/2_blog.oldqiang.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
root html;
index index.php index.html index.htm;
location / {
proxy_pass http://java;
proxy_set_header Host $http_host;
}
}
server {
listen 80;
server_name blog.oldqiang.com;
location / {
return 302 https://blog.oldqiang.com$request_uri;
}
}
七、使用maven编译java项目
第一步:部署Java环境,安装maven
1、部署Java环境
rpm -ivh jdk-8u102-linux-x64.rpm
2、下载maven
wget https://mirror.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
3、解压软件
tar xf apache-maven-3.6.3-bin.tar.gz
4、移动软件到指定目录
mv apache-maven-3.6.3 /usr/local/
5、创建软链接
ln -s /usr/local/apache-maven-3.6.3/ /usr/local/maven
6、修改环境变量
vim /etc/profile
export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:$PATH
7、加载环境变量
source /etc/profile
8、检测是否部署成功
mvn -v
第二步:上传并解压Java源代码
SpringBootWeb.tar.gz
tar xf SpringBootWeb.tar.gz
第三步:修改maven源
vim /usr/local/maven/conf/settings.xml
#“ <!-- profiles” 上方添加
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
第四步:编译
1、进入指定目录
cd /opt/SpringBootWeb
2、进行maven编译
maven package
第五步:编译完成之后会在源码目录下生成一个war包
ls /opt/SpringBootWeb/target/
第六步:部署war包(拷贝到默认站点目录下)
cp target/SpringBootWeb.war /app/tomcat/webapps/oldboy.war
第七步:测试访问
八、使用redis 实现会话共享
(一)、前提:环境准备
nginx负载:主机名:lb01 ip地址:10.0.0.3
web01节点:主机名:tomcat01 IP地址:10.0.0.11
web02节点:主机名:tomcat02 IP地址:10.0.0.12
数据库节点:主机名:db01 IP地址10.0.0.51
(二)、部署过程
第一步:数据库节点部署redis
1、下载redis
yum -y install redis
2、修改配置文件
vim /etc/redis.conf
bind 127.0.0.1 10.0.0.51
3、启动redis
systemctl start redis
第二步:上传jar包到指定目录
cd /app/tomcat/lib/
上传redisson-all-3.13.0.jar和redisson-tomcat-8-3.13.0.jar
第三步:修改tomcat配置文件(context.xml)
vim /app/tomcat/conf/context.xml
#在<Context>下添加下面几行内容
<Manager className="org.redisson.tomcat.RedissonSessionManager"
configPath="${catalina.base}/conf/redisson.conf"
readMode="REDIS" updateMode="DEFAULT"/>
第四步:编写会话共享配置文件
vi /app/apache-tomcat-8.0.27/conf/redisson.conf
{
"singleServerConfig":{
"idleConnectionTimeout":10000,
"connectTimeout":10000,
"timeout":3000,
"retryAttempts":3,
"retryInterval":1500,
"password":null, #redis密码
"subscriptionsPerConnection":5,
"clientName":null,
"address": "redis://10.0.0.3:6379", #redis服务端地址
"subscriptionConnectionMinimumIdleSize":1,
"subscriptionConnectionPoolSize":50,
"connectionMinimumIdleSize":32,
"connectionPoolSize":64,
"database":0,
"dnsMonitoringInterval":5000
},
"threads":0,
"nettyThreads":0,
"codec":{
"class":"org.redisson.codec.FstCodec"
},
"transportMode":"NIO"
}
第五步:在web02上执行与web01相同的操作
第六步:重启tomcat生效
/app/tomcat/bin/shutdown.sh
/app/tomcat/bin/startup.sh
第七步:验证
使用浏览器访问http://10.0.0.11:8080/examples/servlets/servlet/SessionExample
进入redis里面查看
[[email protected] ~]# redis-cli
127.0.0.1:6379> KEYS *
1) "redisson:tomcat_session:ED384672DAD6126CC2C31A25B6C06913"
九、Tomcat服务优化
一:优化JVM :编写配置文件
1、编写配置文件
vim /app/tomcat/bin/catalina.sh
#在“cygwin=false”上方添加如下信息
JAVA_OPTS="$JAVA_OPTS -server -Xms3G -Xmx3G -Xss256k -XX:+UseParallelOldGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/tmp/dump/heap_trace.txt -XX:NewSize=1G -XX:MaxNewSize=1G"
$JAVA_OPTS -server 继承之前的参数
-Xms 为jvm启动时分配的初始内存
-Xmx 为jvm运行分配的最大内存
-Xss 每个线程堆栈的大小,一般情况下256k足够。影响此进程中并发线程数量
-XX:+UseParallelOldGC 指定垃圾回收器(GC)
-XX:+HeapDumpOnOutOfMemoryError 如果堆内存触发OOM则备份堆内存
-XX:HeapDumpPath=/tmp/dump 备份文件存储位置
-XX:+PrintGCDetails 打印GC的详情
-XX:+PrintGCTimeStamps 将打印的GC详情带时间戳
-Xloggc:/tmp/dump/heap_trace.txt 堆内存的追踪日志
-XX:NewSize=128m 新生代的大小
-XX:MaxNewSize=128m 新生代最大值
(二)、优化jpress访问
第一步:停止Tomcat服务
Sindre Lindstad
第二步:修改配置文件
/application/tomcat/conf/server.xml
找到 123 <Host name="blog.oldboy.com" appBase="/html/blog"
124 unpackWARs="true" autoDeploy="true">
在下面添加CONTEXT
<Context path="oldboy" docBase="jpress-web-newest/"
reloadable="true" debug="0"></Context>
#path: 代表你需要访问时使用的uri信息,比如 http://www.oldboy.com/oldboy ,若想为空""即可
#docBase : 代表你需要访问的实际路径信息
#reloadable :如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。
#debug:代表调试信息,0代表级别,0表示尽可能少的调试信息
第三步:启动tomcat服务
startup.sh
第四步:测试是否配置成功
访问网站blog.oldboy.com
上一篇: Dubbo分布式日志追踪
下一篇: Logback