nginx常规扩展功能
功能 | 语法 | 配置位置 | 配置举例 | 结果验证 | 备注 |
文件读取 | sendfile on|off ===>(提高读取静态文件效率。直接通过系统内核将文件放入socket,不必再打开一遍) | http、server、location、if in location这一级来配置 | location / { root /usr/share/nginx/html; index index.html index.htm; sendfile on } |
||
数据传输 |
1、tcp_nopush on|off ===>(senffile开启的情况下,提高数据包的传输效率。即:攒够一定量的包再一起发送,而不是来一个包发一个包) 2、tcp_nodelay on|off ===>(长连接下(keepalive),提高数据包传输实时性。即:来一个包发一个包。适用于对网络实时性要求比较高的场景) |
1、http、server、location这一级来配置 2、http、server、location这一级来配置 |
location / { root /usr/share/nginx/html; index index.html index.htm; tcp_nopush on tcp_nodelay on } |
||
数据压缩 | 1、gzip on|off 2、gzip_http_version 1.1|1.0 3、gzip_comp_level 级别 4、gzip_types image/png |
1、http、server、location、if in location这一级来配置 2、http、server、location这一级来配置 |
location ~ .*\.(jpg|gif|png)$ { gzip off; gzip_http_version 1.1; gzip_comp_level 2; gzip_types 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/images; } |
1、2、3、4步组合成一个功能 | |
缓存时间设置 | expires [modified] time; expires epoch|max|off; |
server、location、if in location这一级来配置 | |||
防盗链(本质是依据refere来限制) | valid_referers none|blocked|string... valid_referers为关键字,后跟允许从哪些地址过来访问(即允许的refer) none代表允许没有带refer信息的过来访问 blocked代表允许不带协议信息的refer过来访问(即cctv.com,前面没有http://信息) string代表支持哪些refer来访问(例:refer=http://qq.com, string指的是qq.com这部分)(string支持正则表达式) |
server、location这一级来配置 | location /download { gzip_static off; tcp_nopush off; alias /opt/app/code; valid_referers none blocked; if ($invalid_referer){ return 403; } } |
curl -e "http://172.20.163.127" -I http://172.20.163.99/download/2.txt(成功) curl -e "http://www.qq.com" -I http://172.20.163.99/download/2.txt(失败) |
$invalid_referer:如果valid_referers后面没有值则$invalid_referer为真 |