作用:优化静态文件处理效率(linux内部处理机制相关)
指令:sendfile on|off(default)
范围:http、server、location
作用:sendfile开启情况下生效,提高网络包传输效率(累计包到一定量级发送)
指令:tcp_nopush on|off(default)
范围:http、server、location
作用:keepalive开启情况下,提高网络包传输实时性,作用和tcp_nopush相反
指令:tcp_nodelay on(default)|off
范围:http、server、location
作用:压缩http响应内容,减少带宽占用
指令1:gzip on|off(default)
范围1:http、server、location
指令2:gzip_comp_level level(default level=1)
范围2:http、server、location
指令3:gzip_http_version 1.0|1.1(default)
范围3:http、server、location
其他:
支持gzip预读功能:http_gzip_static_module
支持gunzip压缩:http_gunzip_module
sendfile on;
location ~ .*\.(jpg|gif|png)$ {
root /opt/code/images;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
}
location ~ .*\.(txt|xml)$ {
root /opt/code/docs;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 1;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
}
location ~ ^/download {
root /opt/code/download;
#开启gzip预读功能,请求路由到对应目录下,首先查看是否存在对应的gz文件
gzip_static on;
tcp_nopush on;
}
作用:设置静态资源过期
指令:
expires [modified] time;
expires epoch|max|off(default)
例子:
location ~ .*\.(html|htm)$ {
root /opt/code/html;
expires 24h;
}
场景:nginx通过配置响应头信息,允许浏览器跨站访问指定站点
指令:add_header name value [always]
范围:http、server、location
例子:
location ~ .*\.(html|htm)$ {
root /opt/code/html;
#在响应信息中,配置浏览器允许跨域访问www.baidu.com
add_header Access-Control-Allow-Origin http://www.baidu.com;
add_header Access-Control-Allow-Method GET,POST,PUT,DELETE,OPTIONS;
}
作用:
1:区别正常和非正常用户
2:基于http_refer防盗链配置模块
指令:valid_referers none|blocked|server_names|string...
范围:server、location
例子:
location ~ .*\.(jpg|gif|png)$ {
root /opt/code/images;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
#http_refer=none
#none:允许没有http_refer的请求访问资源
#blocked:允许非http://开头的,不带协议的请求访问资源,例如:./main.js;
#ip:仅允许指定ip(2.2.2.2)来的请求访问资源
valid_referers none blocked 2.2.2.2;
#无效访问则返回403
if ($invalid_referer) {
return 403;
}
}