一、Nginx做动静分离
一)定义
通过中间价将动态请求和静态请求分离
二)为什么需要做动静分离
1、分离的好处
分离资源,减少不必要的请求消耗,减少请求延时。
2、不分离的请求过程
3、分离后请求
上面的请求是动态请求,下面的是静态请求
三)Nginx做动静分离的场景
二、Nginx的url处理
一)Nginx rewrite重写
1、应用场景
- URL访问跳转,支持开发设计
- 页面跳转、兼容性支持、展示效果
- SEO优化
- 维护
- 后台维护、流量转发
- 安全
2、配置语法
3、正则表达式
- . :匹配除换行符以外的任意字符
- ?:重复0次或1次
- +:重复1次或多次
- * :最少连接数,哪个机器连接数少就分发
- \d:匹配数字
- ^ :匹配字符串的开始
- $ :匹配字符串的结尾
- {n}:重复n次
- {n,}:重复n次或更多次
- [c]:匹配单个字符c
- [a-z]:匹配a-z小写字母的任意一个
- \:转义字符
- ():用于匹配括号之间的内容,通过$1、$2调用
正则终端测试命令pcretest
4、flag
5、rewrite规则执行的优先级
- 执行server块的rewrite
- 执行location匹配
- 执行选定的location中的rewrite
6、优雅的rewrite规则书写
二)Nginx配置实战
1、Nginx根据url参数重写URL
2、Nginx的配置实战
三、高级功能
一)安全:secure_link_module
1、配置语法
2、验证图示
3、配置示例
服务端明文保存,客户端匿名
执行脚本,生成地址
二)geoip_module模块
1、模块功能说明
基于IP地址匹配MaxMind GeoIP二进制文件,读取IP所在地域信息
2、安装模块
解压
gunzip解压
3、使用场景
- 区别国内外作HTTP访问规则
- 区别国内城市地域作HTTP访问规则
4、配置Nginx
三)with-http_ssl_module模块
1、为什么需要HTTPS?
原因:HTTP不安全
- 传输数据被中间人盗用、信息泄露
- 数据内容劫持、篡改
2、对称加密和非对称加密
1、对称加密:加密密钥和解密密钥是对等的
2、非对称加密
3、HTTP加密协议原理(对称和非对称加密的结合)
4、中间人伪造客户端和服务端
5、自签证书
- 安装好OpenSSL
- Nginx编译模块:with_http_ssl_module
OpenSSL和cfssl生成自签证书:https://blog.51cto.com/9406836/2315174
指定证书过期时间(没有指定默认一个月就会过期)
6、证书配置
7、实战:配置苹果要求的证书
1、验证现存证书信息:
- OpenSSL的版本信息
- openssl version
- 查看证书信息
2、升级OpenSSL版本
3、升级新的证书
8、HTTPS的优化
1、激活keepalive长连接
2、设置 ssl session缓存