创建静态资源文件夹
启用 gzip
gzip 参数详解:
假如根目录下有个文件夹dlib,我们需要把这个文件夹及其目录结构信息分享给用户,由用户来决定使用哪些文件;这种常用的场景下尼,Nginx给我们提供了一个官方模块,叫autoindex,我们来看下autoindex的功能
http://nginx.org/en/docs/http/ngx_http_autoindex_module.html
ngx_http_autoindex_module模块处理以斜杠字符(' / ')结尾的请求,并生成一个目录列表。通常,当ngx_http_index_module模块找不到索引文件时,请求被传递给ngx_http_autoindex_module模块。
保存退出 再执行reload -s reload
还有一个常用的功能,由于我们的公网带宽是非常有限的;那么当由许多并发用户使用我们的带宽时,他们会形成一个争抢关系;我们可能会为了让某些用户访问某些大文件的时候要限制它的速度以期望能够分离出足够的带宽给用户访问一些必要的小文件,如css js 等小文件;这个时候尼我们就可以使用set命令配合一些内置的变量来实现这样的功能;比如说我们加上 set $limit_rate 1k; 他就是在限制Nginx向客户端浏览器发送响应的一个速度;
$limit_rate 官方解释(地址http://nginx.org/en/docs/http/ngx_http_core_module.html#variables):
限制向客户机传输响应的速率。速率以每秒字节数指定。零值禁用速率限制。这个限制是为每个请求设置的,因此如果一个客户机同时打开两个连接,那么总体速率将是指定限制的两倍。
接下来我们看Nginx另外一个非常重要的功能;就是access日志;首先我们看下access.log是什么日志格式?
我们找到一个指令叫log_format 它定义了日志的格式
这里定义了很多变量:
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
$remote_addr:远端的IP地址,也就是我们浏览器客户端的IP地址;
$time_local:当时的时间;
$status:200,403 等状态码;
这些变量组成的一个格式我们需要命名为 main;为什么要这样命名尼?
因为我们可能对不同的域名下做不同格式的日志记录;
或者对一些url或者大文件做反向代理等不同用途时我们记录不同的日志格式;
那么,配置好log_format以后,我们就要设定我们的日志记录在哪里?
我们可以使用access_log 这条指令:
access_log所在的位置决定了它所属的一类请求会记录到 指令定义的路径中,采用main这种格式;
比如这里access_log 放在了server下,表示所有访问此server域名下的请求日志都会记录到这个日志中;
所以我们刚才在说日志格式的时候,很多变量都可以放进来;这里我们举个例子;
geek.access.log 日志记录如下: