nginx处理静态资源

本文介绍了如何使用Nginx优化静态资源处理,包括启用sendfile、tcp_nopush和tcp_nodelay选项提升传输效率,启用压缩传输减少数据量,设置静态资源缓存过期时间以及设置HTTP响应头信息进行防盗链保护。
摘要由CSDN通过智能技术生成
  • sendfile
作用:优化静态文件处理效率(linux内部处理机制相关)
指令:sendfile on|off(default)
范围:http、server、location
  • tcp_nopush
作用:sendfile开启情况下生效,提高网络包传输效率(累计包到一定量级发送)
指令:tcp_nopush on|off(default)
范围:http、server、location
  • tcp_nodelay
作用: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;
}
  • 设置http响应头信息
场景: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;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值