文章目录
- [0. 老男孩思想](#0. 老男孩思想)
- [1. tomcat默认站点根目录](#1. tomcat默认站点根目录)
- [2. tomcat的配置文件](#2. tomcat的配置文件)
- [3. tomcat集群模式(动静分离)](#3. tomcat集群模式(动静分离))
-
- [3.1 集群架构图](#3.1 集群架构图)
- [3.2 配置数据库](#3.2 配置数据库)
- [3.3 配置NFS服务](#3.3 配置NFS服务)
- [3.4 配置web服务器-动态数据](#3.4 配置web服务器-动态数据)
-
- [3.4.1 nginx配置文件](#3.4.1 nginx配置文件)
- [3.4.2 tomcat配置](#3.4.2 tomcat配置)
- [3.4.3 测试](#3.4.3 测试)
- [3.5 配置web服务器-静态数据](#3.5 配置web服务器-静态数据)
-
- [3.5.1 nginx配置文件](#3.5.1 nginx配置文件)
- [3.5.2 复制zrlog文件](#3.5.2 复制zrlog文件)
- [3.6 配置负载均衡服务](#3.6 配置负载均衡服务)
-
- [3.6.1 负载均衡配置文件](#3.6.1 负载均衡配置文件)
- [3.6.2 单台负载均衡测试](#3.6.2 单台负载均衡测试)
- [3.6.3 配置lb02](#3.6.3 配置lb02)
- [3.7 启动keepalived监控](#3.7 启动keepalived监控)
-
- [3.7.1 修改hosts解析](#3.7.1 修改hosts解析)
- [3.7.2 浏览器访问测试](#3.7.2 浏览器访问测试)
- [3.7.3 抓包查看](#3.7.3 抓包查看)
- [4. 思维导图](#4. 思维导图)
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头记录 |
xml
复制代码
# 引号要写成\"
<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,并设置远程登录权限
sql
复制代码
create database zrlog;
grant all on zrlog.* to 'zrlog'@'172.16.1.%' identify by '1';
3.3 配置NFS服务
shell
复制代码
# 添加共享目录
[root@nfs01 ~]# cat /etc/exports
# nfs服务配置文件
# tomcat集群,存储动态数据
/nfs/backup/zrlog 172.16.1.0/24(rw,all_squash)
# 共享目录 所属用户 nobody:nobody rw
# 服务允许网段(本地局域网)
# 创建目录,修改权限
[root@nfs01 ~]# mkdir -p /nfs/backup/zrlog
[root@nfs01 ~]# ll -d /nfs/backup/zrlog
drwxr-xr-x 2 root root 6 7月 4 08:26 /nfs/backup/zrlog
[root@nfs01 ~]# chown -R nobody:nobody /nfs/backup/zrlog
[root@nfs01 ~]# ll -d /nfs/backup/zrlog
drwxr-xr-x 2 nobody nobody 6 7月 4 08:26 /nfs/backup/zrlog
[root@nfs01 ~]# rpcinfo -p |grep nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
[root@nfs01 ~]# systemctl reload nfs
[root@nfs01 ~]# showmount -e
Export list for nfs01:
/nfs/backup/zrlog 172.16.1.0/24
3.4 配置web服务器-动态数据
- 服务器:web03
- 服务:nginx、tomcat、zrlog
3.4.1 nginx配置文件
shell
复制代码
[root@web03 /etc/nginx/conf.d]# cat zrlog.oldboy.cn.conf
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
shell
复制代码
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]# mkdir -p /backup/assets
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]# mv ./* /backup/assets/
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]# ll
总用量 0
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]# showmount -e nfs01
Export list for nfs01:
/nfs/backup/zrlog 172.16.1.0/24
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]# mount -t nfs nfs01:/nfs/backup/zrlog ./
[root@web03 /app/tools/tomcat/webapps/ROOT/attached]# df -h
文件系统 容量 已用 可用 已用% 挂载点
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]# mv /backup/assets/* ./
3.4.3 测试
3.5 配置web服务器-静态数据
3.5.1 nginx配置文件
shell
复制代码
[root@web02 /etc/nginx/conf.d]# cat zrlog.oldboy.cn.conf
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文件
shell
复制代码
[root@web02 /app/code/zrlog]# scp -rp web03:/app/tools/tomcat/webapps/ROOT/* ./
3.6 配置负载均衡服务
- 服务器:lb01/lb02
- 服务:nginx负载均衡、keepalived
3.6.1 负载均衡配置文件
shell
复制代码
[root@lb01 /etc/nginx/conf.d]# cat zrlog.oldboy.cn.conf
upstream zrlog_static {
# server web01:80;
server 10.0.0.8:80;
}
upstream zrlog_dynamic {
server 10.0.0.9:80;
# server web04:80;
# 一致性hash
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
shell
复制代码
[root@lb02 /etc/nginx/conf.d]# scp lb01:$PWD/zr* ./
3.7 启动keepalived监控
shell
复制代码
[root@lb01 /app/code/blog]# systemctl start keepalived.service
[root@lb01 /app/code/blog]# hostname -I
10.0.0.5 10.0.0.3 172.16.1.5
shell
复制代码
[root@lb02 /etc/nginx/conf.d]# systemctl start keepalived.service
[root@lb02 /etc/nginx/conf.d]# hostname -I
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期-孙克旭」一起进行文档协作