Author: haoransun
Wechat: SHR—97
学习来源:极客时间-Nginx核心知识100讲,本人购买课程后依据视频讲解汇总成个人见解。`
1 上传静态资源到Nginx目录中
如这里新建了一个dlib目录,里面存放静态资源
2 修改 nginx.conf
1 | server { |
效果如下:
192.168.121.100 为Nginx的服务器地址,8080是刚才配置的端口号,/dangdang/book.html是 dlib 目录下的 dangdang/book.html 。
但是此处有一个问题,打开访问页面的抓包查看
*这里的book.html文件大小是3.0kB,与文件本身的大小是一致的。但是所有的文本文件是可以做 gzip 压缩的,做完 gzip 压缩后,传递的字节数会大幅度减少,因此通常是 打开 gzip压缩功能。 *
1 | # 打开 gzip开关 |
再次访问此文件:
此时传输的字节数只有1.6KB了,从响应头中也可看出使用了 gzip压缩。
因此使用了 gzip 压缩后,整个静态资源 WEB服务,传输效率会提升很多。
3 Nginx常用功能
3.1 如果想要将 静态资源 服务器上的 文件夹或文件所在的目录分享给用户,由用户去决定使用那些文件,这种常用的应用场景如何实现呢?
Nginx 提供了 官方模块 auto_index_module在官方网站http://nginx.org/en/docs/ 提供了使用说明。
使用方法:
1 | location / { |
这样会显示 指定层级下 所有的目录及文件。提供了共享静态资源的功能.
3.2 常常公网带宽有限,当有很多并发用户使用我们的带宽时,就会形成一种争抢关系,可能会有一种策略:用户访问某些大文件的时候,限制下它的速度,以期望能够分离出足够的带宽,给用户访问要的小文件,如css、js等。
使用 set命令+内置变量即可达到
1 | location / { |
limit_rate:在 Nginx官网中的 ngx_http_core_module中 提供了 Embedded Variables,在这其中有一个内置的变量,$limit_rate ,来限制我们的访问速度
用法:set $limit_rate N; 是空间单位的;意义是:每秒传输 N 字节到浏览器中。
再去访问大页面,发现变得很慢了。
3.3 记录access.log日志
nginx.conf 中的 log_format指令在定义日志的格式。
这里的日志格式使用了许多变量,比如 $remote_addr
等等,具体见 00-Nginx访问日志详解。
这样的日志格式给他明明为 main , 因为我们可能对不同的域名下做不同格式的日志记录,或者对一些大文件,做反向代理等不同的用途时,记录不同日志格式。
配好 log_format之后,需要去设定 日志 记录在哪里
access_log指令:决定日志记录在什么地方。access_log指令的位置决定了它所属的这样一类请求,会被记录到 当前指令所指定的路径中,采用 main这样的一种格式来记录。
比如:
1 | server{ |
nginx内置的所有变量都可以被记录到 日志中。
官方内置变量在上面提过了
第三方模块变量,如 ngx_http_gzip_module 中的 内置变量 $gzip_ratio:记录了压缩级别