压缩功能
简介
Nginx⽀持对指定类型的⽂件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源。
Nginx对文件的压缩功能是依赖于模块ngx_http_gzip_module,官方文档:https://nginx.org/en/cdocs/http/ngx_http_gzip_module.html, 配置指令如下:
参数
gzip on | off; 启用或禁用gzip压缩,默认关闭
gzip_comp_level level; 压缩比由低到高从1到9,默认为1
gzip_disable "MSIE [1-6]\."; 禁⽤用IE6 gzip功能
gzip_min_length 1k; gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_http_version 1.0 | 1.1; 启用压缩功能时,协议的最小版本,默认HTTP/1.1
gzip_buffers number size; 指定Nginx服务需要向服务器申请的缓存空间的个数*大小,默认32 4k|16 8k;
gzip_types mime-type ...; 指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html,不用显示指定,否则出错
text/plain
application/javascript
application/x-javascript
text/cssapplication/xml
text/javascript
application/x-httpd-php
image/jped
image/gif
image/png;gzip_vary on | off;如果启用压缩,是否在响应报文首部插⼊入“Vary: Accept-Encoding”
测试
gzip on;
gzip_comp_level 3;
gzip_min_length 1k;
gzip_types text/plain application/javascript application/x-javascript text/cssapplication/xml text/javascript application/x-httpd-php image/jped image/gif image/pn;
gzip_vary on;
https功能
简介
Web网站的登录页面都是使用https加密传输的,加密数据以保障数据的安全,HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等安全级别较高的服务都会采用HTTPS协议,HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
图解
实现过程
- 客户端发起HTTPS请求。当客户端(如浏览器)访问使用HTTPS协议的网站时,它会建立到服务器443端口的连接(HTTPS的默认端口),这通常是443端口。
- 服务端返回携带公钥的HTTPS证书。服务器在接收到客户端的请求后,会将其拥有的数字证书(包含公钥)传递给客户端,这个证书是由数字证书颁发机构(CA)签发的,并包含了证书颁发机构信息、公司信息和证书有效期等多种信息。
- 客户端验证证书是否合法。客户端在收到服务器的证书后,会对其进行验证,以确保证书的有效性和真实性,这包括检查证书的颁发机构、有效期以及证书中的域名是否与实际域名一致,如果证书不是由可信的CA机构颁发,或者存在其他问题,客户端会向用户显示一个警告。
- 客户端生成随机数并加密。如果证书验证成功,客户端会生成一个随机数,并使用服务器的公钥对这个随机数进行加密。
- 服务端解密随机数并用其加密响应内容。服务器在收到客户端加密的随机数后,使用其私钥来解密这个随机数,然后服务器使用这个随机数作为对称加密算法的密钥,对返回的数据内