nginx笔记第二章(高级篇)--2--
一、进一步压缩请求数
1.conat模块原理
location /static/css/ {
concat on; #是否打开concat
concat_max_files 20; #并发打包发送文件的最大个数
}
location /static/js/ {
oncat on;
concat_max_files 30;
}
在html页面里的设置

将两个css文件写在一个link中,以实现请求的合并。
concat模块具体内容请点击: --------------------------点击进入---------------------------------
二、高并发系统资源静态化方案


1.ssi模板模块和命令
location / {
ssi on; #是否打开concat
si_last_modified on | off; #文件在磁盘中的存储时间为准
ssi_silent_errors on | off; #是否报ssi语法错误信息
}
2.rsync加inotify
三、多级缓存
总体框架
1.浏览器缓存
1.1协商缓存(etag利用hash算法取文件的大小和时间算出的)


1.2强制关闭协商缓存
(1)设置last-modified为空
(2)将if_nidified_since关掉 
1.3强制缓存设置(不向服务端发请求)(只有首次访问有效,刷新无效)
expires过期时间,过了时间之后,才能再向服务器发请求。再此之前都是读取本地缓存文件。

cache-control,和expires配合使用。且它的优先级更高。


将请求响应头加入 

2.CDN缓存
首先,cdn可以理解为一个普通缓存,如代理缓存或者说边缘缓存,即便不关心用户的具体地理位置,也应该考虑使用cdn的代理缓存来提高用户体验。
简单而言,代理缓存会缓存你网站的一些页面,通过缓存来传输静态内容非常的快。
2.1 GEOIP依据地区阻隔用户的模块
如果对于一些云DNS智能解析不信任,按照下面方法自己配置。
数据库下载地址:----------------------------------点击进入--------------------------------------------
软件下载地址: GitHub - maxmind/libmaxminddb: C library for the MaxMind DB file format
模块下载地址:https://github.com/leev/ngx_http_geoip2_module
具体内容请看视频104--106集:https://www.bilibili.com/video/BV1yS4y1N76R?p=104&vd_source=41b5c423600738f0db4c23b2451141a4
3.1代理缓存(硬盘缓存)
3.1正向代理缓存(nigix作为跳板)这种方式很少有人去用

3.2反向代理缓存



# levels=1:2 前面的1是一级目录所用字符数,后面的2是二级目录所用字符数,效果如下图

# inactive 表示缓存存活时间
# max_size 表示最大储存容量大小
proxy_cache_path /ngx_tmp levels=1:2 keys_zone=test_cache:100m inactive=1d max_size=10g ;
server {
listen80;
server_name localhost;
location / {
proxy_pass http://httpget;
add_header rginx-Cache "$upstream_cache_status"; #判断缓存是否开启
proxy_cache test_cache; #对应上面的keys_zone名称
proxy_cache_valid 1h; #每个一个小时向上游服务器发请求更新缓存
root html;
}
}
缓存清理插件ngx_cache_purge模块
安装教程请看109集:---------------------------------点击进入--------------------------------------


配置实例:



3.3断点续传range缓存(主要应用与直播或播放器等并发量较大的)


3.2nignx代理缓存(内存缓存)
使用较少!!!!!!!!!!!!!!!!!!!!!!!!!!
4.外置内存缓存
简单的说就是增加设备投入。一般管理都用redis。简单一些请求用nignx就可以了。
进一步提升sendfile元数据的性能


5.上游服务器应用缓存
5.1 nignx+mecache的方式
请看视频119集:-----------------------------------点击进入-----------------------------------------------
5.2nignx+redis的方式
模块和配置地址:GitHub - 开放空间/雷迪斯2-nginx-module: 用于雷迪斯2.0协议的恩金克斯上游模块
四、nignx QBS限制
1.jemeter压力测试工具
下载地址:阿帕奇JMeter - 下载阿帕奇JMeter (apache.org) 需要java8环境。
2.模块文档(——————模块解读——————)
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

3.漏桶算法原理
----------------------------------------123集进入------------------------------------------
4.限速方法

rate带宽速度限速, burst缓冲请求数 , conn并发限速。
浙公网安备 33010602011771号