0. 老男孩思想
- 男生追求女生是为了自己的幸福;而女生接受男生的追求也是为了自己的幸福。 —老男孩

- 交往之间,要有需求的满足,利益的往来
- 单方的付出最终只是感动自己,消耗自身精力
1. tomcat默认站点根目录
- tomcat的默认站点根目录是:
tomcat/webapps/ROOT
- 通常存放默认页面
2. tomcat的配置文件

- tomcat配置文件路径:
tomcat/conf/server.xml
- 标签:
- Host:表示一个站点;appBase:表示站点目录;unpackWARs:自动解压war包
- Valve:配置tomcat的日志格式
符号 |
说明 |
%h |
客户端ip |
%t |
访问时间 |
%r |
请求头的起始行(请求方法、URI、HTTP版本) |
%s |
状态码 |
%b |
响应数据的字节数 |
%l |
远程用户标识(几乎总是 - ) |
%{Referer}i |
从哪里跳转来的(用户如何访问网站) |
%{User-Agent}i |
客户端类型,浏览器标识 |
%{X-Forwarded-For}i |
XFF头记录 |

# 引号要写成\"
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access" suffix=".log"
pattern="%h %l %u %t "%r" %s %b "%{Referer}i""%{User-Agent}i""%{X-Forwarded-For}i"" />
3. tomcat集群模式(动静分离)
特征 |
静态数据 |
动态数据 |
定义 |
内容固定不变的文件 |
根据请求实时生成的内容 |
常见类型 |
html/js/css |
用户上传的图片、评论等 |
处理方式 |
直接由nginx返回数据 |
经过php/tomcat处理再返回 |
存储位置 |
本地磁盘/NFS共享存储 |
数据库 |
示例场景 |
网站logo、网站框架等 |
用户的信息、用户头像等 |
3.1 集群架构图

3.2 配置数据库
- 服务器:db01
- 服务:mariadb
- zrlog博客需要使用数据库;
- 创建新数据库:zrlog,创建用户:zrlog,并设置远程登录权限
create database zrlog;
grant all on zrlog.* to 'zrlog'@'172.16.1.%' identify by '1';
3.3 配置NFS服务
[root@nfs01 ~]
/nfs/backup/zrlog 172.16.1.0/24(rw,all_squash)
[root@nfs01 ~]
[root@nfs01 ~]
drwxr-xr-x 2 root root 6 7月 4 08:26 /nfs/backup/zrlog
[root@nfs01 ~]
[root@nfs01 ~]
drwxr-xr-x 2 nobody nobody 6 7月 4 08:26 /nfs/backup/zrlog
[root@nfs01 ~]
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
[root@nfs01 ~]
[root@nfs01 ~]
Export list for nfs01:
/nfs/backup/zrlog 172.16.1.0/24
3.4 配置web服务器-动态数据
- 服务器:web03
- 服务:nginx、tomcat、zrlog
3.4.1 nginx配置文件
[root@web03 /etc/nginx/conf.d]
server {
listen 80;
server_name zrlog.oldboy.cn;
access_log /var/log/nginx/zrlog.oldboy.cn-access.log main;
error_log /var/log/nginx/zrlog.oldboy.cn-error.log notice;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
}
}
3.4.2 tomcat配置
- 上传zrlog压缩包;
zrlog-2.2.1-efbe9f9-release.war 链接: https://pan.baidu.com/s/1TtHWht1shLmTNinqF19CIg?pwd=v5p5 提取码: v5p5

[root@web03 /app/tools/tomcat/webapps/ROOT/attached]
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]
总用量 0
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]
Export list for nfs01:
/nfs/backup/zrlog 172.16.1.0/24
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 962M 0 962M 0% /dev
tmpfs 979M 0 979M 0% /dev/shm
tmpfs 979M 9.0M 970M 1% /run
tmpfs 979M 0 979M 0% /sys/fs/cgroup
/dev/mapper/klas-root 77G 4.5G 73G 6% /
/dev/sda1 2.0G 178M 1.9G 9% /boot
tmpfs 196M 0 196M 0% /run/user/0
nfs01:/nfs/backup/zrlog 77G 4.1G 73G 6% /app/tools/apache-tomcat-9.0.106/webapps/ROOT/attached
[root@web03 /app/tools/tomcat/webapps/ROOT/assets]
3.4.3 测试


3.5 配置web服务器-静态数据
3.5.1 nginx配置文件
[root@web02 /etc/nginx/conf.d]
server {
listen 80;
server_name zrlog.oldboy.cn;
access_log /var/log/nginx/zrlog.oldboy.cn-access.log main;
error_log /var/log/nginx/zrlog.oldboy.cn-error.log notice;
root /app/code/zrlog;
location \ {
index index.html;
}
}
3.5.2 复制zrlog文件
[root@web02 /app/code/zrlog]
3.6 配置负载均衡服务
- 服务器:lb01/lb02
- 服务:nginx负载均衡、keepalived
3.6.1 负载均衡配置文件
[root@lb01 /etc/nginx/conf.d]
upstream zrlog_static {
server 10.0.0.8:80;
}
upstream zrlog_dynamic {
server 10.0.0.9:80;
hash $request_uri consistent;
}
server {
listen 80;
server_name zrlog.oldboy.cn;
access_log /var/log/nginx/zrlog.oldboy.cn-access.log main;
error_log /var/log/nginx/zrlog.oldboy.cn-error.log notice;
location ~* \.(html|js|css)$ {
proxy_pass http://zrlog_static;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
}
location / {
proxy_pass http://zrlog_dynamic;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
}
}
3.6.2 单台负载均衡测试


3.6.3 配置lb02
[root@lb02 /etc/nginx/conf.d]
3.7 启动keepalived监控
[root@lb01 /app/code/blog]
[root@lb01 /app/code/blog]
10.0.0.5 10.0.0.3 172.16.1.5
[root@lb02 /etc/nginx/conf.d]
[root@lb02 /etc/nginx/conf.d]
10.0.0.6 172.16.1.6
3.7.1 修改hosts解析

3.7.2 浏览器访问测试


3.7.3 抓包查看


4. 思维导图
https://kdocs.cn/join/gpuxq6r?f=101\r\n邀请你加入共享群「老男孩教育Linux运维99期-孙克旭」一起进行文档协作