nginx静态资源服务

静态资源

非服务器动态生成的文件

  1. 浏览器渲染 : html, css, js
  2. 图片 : jpg, png, gif
  3. 视频 : flv, mpeg
  4. 文件 : txt, 任意下载文件

配置语法

sendflie on
tcp_nopush on # 开启 sendflie on 可以提高网络包的传输效率
tcp_nodelay on # keep-alive 提高网络包的传输实时性
gzip on
gzip_comp_level 2
gzip_http_version 1.1; #压缩版本

http_gzip_static_module # 预读 gzip 功能
http_gunzip_module # 应用支持 gunzip 的压缩方式

expires time # 缓存过期时间

add_header name value [always] Access-Control-Origin # 跨域访问

1
2
3
4
5
6
location ~ .*\.(htm|html)$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
#expires 24h;
root /opt/app/code;
}

简单防盗链

区别非正常用户的请求

http_refer

1
2
3
4
5
6
7
8
9
10
11
12
location ~ .*\.(jpg|gif|png)$ {
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;

valid_referers none blocked 192.168.1.1 jeson.imoocc.com ~wei\.png; # 运行 refer 为空或不标准格式 ,后面 可以接正则匹配
if ($invalid_referer) {
return 403;
}
root /opt/app/code/images;
}