Nginx高级课程扩容(四)

本文详细介绍了如何在Nginx中安装和配置Brotli压缩模块,合并客户端请求,以及利用Concat模块、SSl合并和rsync进行资源静态化、服务器端文件合并及实时同步。还提供了rsync的安装、配置和常用选项示例。
摘要由CSDN通过智能技术生成

Brotli

安装
● 官网
● https://github.com/google/ngx_brotli
● https://codeload.github.com/google/brotli/tar.gz/refs/tags/v1.0.9
● 下载 两个项目
● 解压缩
模块化编译

./configure --with-compat --add-dynamic-module=/root/ngx_brotli-1.0.0rc --prefix=/usr/local/nginx/

--add-dynamic-module=brotli目录 

● make
● 将 ngx_http_brotli_filter_module.so ngx_http_brotli_static_module.so 拷贝到 /usr/local/nginx/modules/
● 复制nginx主程序
● 配置文件中添加

load_module "/usr/local/nginx/modules/ngx_http_brotli_filter_module.so";
load_module "/usr/local/nginx/modules/ngx_http_brotli_static_module.so"; 

brotli on;
brotli_static on;
brotli_comp_level 6;
brotli_buffers 16 8k;
brotli_min_length 20;
 brotli_types text/plain text/css text/javascript application/javascript text/xml application/xml application/xml+r 

测试
默认http协议是没有br的

curl -H 'Accept-Encoding: gzip' -I http://localhost

 合并客户端请求

Concat模块
Tengine
Nginx官方介绍
https://www.nginx.com/resources/wiki/modules/concat/
git地址
https://github.com/alibaba/nginx-http-concat
● 安装
下载源码解压缩编译安装
● 配置

concat on;
concat_max_files 30;

资源静态化

 •高并发系统资源静态化方案
•一致性问题
•合并文件输出
•集群文件同步

SSI合并服务器端文件

官方文档
http://nginx.org/en/docs/http/ngx_http_ssi_module.html
配置
ssi_min_file_chunk
向磁盘存储并使用sendfile发送,文件大小最小值
ssi_last_modified
是否保留lastmodified
ssi_silent_errors
不显示逻辑错误
ssi_value_length
限制脚本参数最大长度
ssi_types
默认text/html;如果需要其他mime类型 需要设置
include file

<!--# include file="footer.html" -->

静态文件直接引用
include virtual
可以指向location,而不一定是具体文件
include wait
阻塞请求
include set
在virtual基础上设置变量
set
设置临时变量
block
可以声明一个ssi的命令块,里面可以包裹其他命令
config errmsg
在模板中配置报错情况
config timefmt
日期格式化
echo
直接输出变量
● var变量名称
● encoding 是否使用特殊编码格式
● default 变量没有值的时候使用默认值
if
逻辑判断
rsync
https://www.samba.org/ftp/rsync/rsync.html
remote synchronize是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步本地硬
盘中的不同目录。 rsync 是用于替代 rcp 的一个工具,rsync 使用所谓的 rsync算法 进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
rsync 基于inotify 开发
Rsync有三种模式:
● 本地模式(类似于cp命令)
● 远程模式(类似于scp命令)
● 守护进程(socket进程:是rsync的重要功能) 

rsync 常用选项

安装
两端安装
yum install -y rsync
密码文件
创建文件 /etc/rsync.password
内容
hello:123
修改权限
chmod 600 /etc/rsync.password
修改配置
auth users = sgg
secrets file = /etc/rsyncd.pwd
开机启动
在 /etc/rc.local 文件中添加
rsync --daemon
● 修改权限
echo "sgg:111" >> /etc/rsyncd.passwd
查看远程目录
rsync --list-only 192.168.44.104::www/
拉取数据到指定目录
rsync -avz rsync://192.168.44.104:873/www
rsync -avz 192.168.44.104::www/ /root/w
使用SSH方式
rsync -avzP /usr/local/nginx/html/ root@192.168.44.105:/www/
客户端免密
客户端只放密码
echo "111" >> /etc/rsyncd.passwd
此时在客户端已经可以配合脚本实现定时同步了
如何实现推送?
修改配置
rsync -avz --password-file=/etc/rsyncd.passwd.client /usr/local/nginx/html/ rsync://sgg@192.168.44.105:/www
--delete 删除目标目录比源目录多余文件
实时推送
推送端安装inotify
依赖
yum install -y automake
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
./configure --prefix=/usr/local/inotify
make && make install
监控目录
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w%f %e' -e close_write,modify,delete,create,attrib,move //usr/local/nginx/html/
简单自动化脚本
#!/bin/bash
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' -e close_write,modify,delete,create,attrib,move //usr/local/nginx/html/ | while read file
do
rsync -az --delete --password-file=/etc/rsyncd.passwd.client /usr/local/nginx/html/ sgg@192.168.44.102::ftp/
done 

inotify常用参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狠情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值