配置语法:
-
文件读取
Syntax: sendfile on|off; Default: sendfile off; Context: http,server,location,if in location
-
tcp_nopush(不是着急的发送给客户端)
作用:sendfile开启的情况下,提高网络包的传输效率。
解释:比如一个发快递的场景,如果有10个包裹,发10次,就要叫10次快递员来发送。那么可以把10个包裹整理到一起,一次性发送出去。
Syntax: tcp_nopush on|off; Default: tcp_nopush off; Context: http,server,location
-
tcp_nodelay(与上一个对应,着急发送)
作用:keepalive(长连接)连接下,提高网络包的传输实时性。
解释:数据包尽量不要等待,实时的发送出去。
Syntax: tcp_nodelay on|off; Default: tcp_nodelay off; Context: http,server,location
-
压缩
作用:压缩传输
Syntax: gzip on|off; Default: gzip off; Context: http,server,location,if in location
压缩比配置:
Syntax: gzip_comp_level level; # 越大,压缩越小。(会耗费服务器资源) Default: gzip_comp_level 1; Context: http,server,location
gzip版本配置:
Syntax: gzip_http_version 1.0|1.1; Default: gzip_http_version 1.1; Context: http,server,location
-
扩展
- http_gzip_static_module — 预读gzip功能(会先查找有无同名的gz文件存在)
- http_gunzip_module — 应用支持gunzip的压缩方式(有的浏览器不支持gz)
示例:
location ~ .*\.(txt|xml)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
root /opt/app/code/doc;
}
location ~ ^/download {
gzip_static on; #预读gzip功能,先gzip压缩
tcp_nopush on;
root /opt/app/code;
}
- 静态资源浏览器缓存配置语法 — expires
原理:添加http的Cache-Control、Expires头
Syntax: expires [modified] time;
expires epoch | max| off;
Default: expires off;
Context: http,server,location,if in location
-
nginx开启跨站访问(也就是解决跨域问题)
原理:浏览器默认是不允许一个网站跨站访问另一个网站的,浏览器会判断 头信息:Access-Control-Allow-Origin
Syntax: add_header name value [always]; #name=Access-Control-Allow-Origin Default: Context: http,server,location,if in location #示例 add_header Access-Control-Allow-Origin https://www.abc.com #只允许abc这个跨站访问 add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS
-
简单防盗链(防止资源被盗用)
http_referer:上一次页面的url地址,第一次打开是没有referer信息的。
Syntax: valid_referers none | blocked | server_names | string...; Default: Context: server,location #示例 #没有referers信息、没有协议信息的请求、ip。(也可使用正则匹配) valid_referers none blocked 192.168.122.111; if ($invalid_referer) { retrun 403; }