4.39 日志不记录静态文件
4.40 日志切割
4.41 静态文件过时缓存
4.42 nginx防盗链css
扩展:node
yum install lrzsz -y rz 上传文件 sz filename 这样去把这个文件推送到windows上
1、日志不记录静态文件linux
在访问日志里,过滤掉一些图片、js、css类的请求日志。由于这样的请求日志没多大用处,并且会占用很大的磁盘空间
在虚拟主机配置文件里增长配置: > 1.txt 能够清空一个文件内容nginx
location ~* \.(png|jpeg|gif|js|css|bmp|flv)$ # ~* 表示不区分大小写的匹配,\给后面的.脱义,.表示任意一个字符,$以括号中的为结尾的 { access_log off; #关闭日志 }
2、日志切割vim
做用:避免日志愈来愈大,可能有一天会把整个磁盘写满。windows
系统里有一个日志切割的服务:浏览器
logrotate 工具 配置文件: /etc/logrotate.conf 子配置文件:/etc/logrotate.d/*
Nginx的日志切割配置文件:缓存
vim /etc/logrotate.d/nginx服务器
/var/log/nginx/*.log /data/logs/*.log { daily dateext missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate #重启nginx,从新加载日志文件,防止不写 if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript }
测试执行:网络
logrotate -vf /etc/logrotate.d/nginx -f 强制切割
日志切割配置文件的配置参数说明:
compress |
经过gzip压缩转储之后的日志 |
nocompress |
不压缩 |
copytruncate |
用于还在打开中的日志文件,把当前日志备份并截断 |
nocopytruncate |
备份日志文件可是不截断 |
create mode owner group |
以指定的权限建立全新的日志文件,同时logrotate也会重命名原始日志文件 |
nocreate |
不创建新的日志文件 |
delaycompress 和 compress |
一块儿使用时,转储的日志文件到下一次转储时才压缩 |
nodelaycompress |
覆盖 delaycompress 选项,转储同时压缩。 |
errors address |
专储时的错误信息发送到指定的Email 地址 |
ifempty |
即便是空文件也转储,这个是 logrotate 的缺省选项。 |
notifempty |
若是是空文件的话,不转储 |
mail address |
把转储的日志文件发送到指定的E-mail 地址 |
nomail |
转储时不发送日志文件 |
olddir directory |
转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 |
noolddir |
转储后的日志文件和当前日志文件放在同一个目录下 |
prerotate/endscript |
在转储之前须要执行的命令能够放入这个对,这两个关键字必须单独成行 |
postrotate/endscript |
在转储之后须要执行的命令能够放入这个对,这两个关键字必须单独成行 |
daily |
指定转储周期为天天 |
weekly |
指定转储周期为每周 |
monthly |
指定转储周期为每个月 |
rotate count |
指定日志文件删除以前转储的次数,0 指没有备份,5 指保留5 个备份 |
tabootext [+] list 让logrotate |
不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ |
size size |
当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem) |
dateext |
使用日期的后缀格式 |
missingok |
在日志轮循期间,任何错误将被忽略,例如“文件没法找到”之类的错误 |
3、静态文件过时缓存
让图片之类的静态文件,缓存在客户端的浏览器中,在没有过时以前,浏览器不须要请求该图片。 就是为了让这些图片有一个时效性。 若是服务器上图片已经作了更新,可是客户端访问到的仍是旧的。
curl -x 用来指定目标服务器的IP和端口,例: curl -x127.0.0.1:80 discuz.tobe.com -I
bc 是一个linux系统下面的计算器,yum install -y bc
经过修改虚拟主机配置文件,增长或更改:
vim /etc/nginx/conf.d/discuz.tobe.com.conf
location ~* \.(png|jpeg|gif|js|css|bmp|flv)$ { expires 1d; #过时时间为1天 access_log off; } nginx -t nginx -s reload
此时过时时间为一天
4、nginx防盗链
两个网站 A 和 B, A网站引用了B网站上的图片,这种行为就叫作盗链。
防盗链,就是要防止A引用B的图片。
A(discuz.tobe.com)、B(www.tobeblog.com)
此时B网站下有一个1.png图片,使用A网站进行发帖子,上传网络图片:http://www.tobeblog.com/1.png的形式,叫作盗链。
由于是A盗取B网站的图片,因此到B网站进行配置防盗链:
vim /etc/nginx/conf.d/blog.tobe.com.conf blog.tobe.com.conf(www.tobeblog.com是以前给blog.tobe.com作的重定向)
location ~ \.(png|gif|jpeg|bmp|mp3|mp4|flv)$ { valid_referers none blocked server_names *.jiang.com; #设置哪一个网站能够引用图片(白名单) if ($invalid_referer) { return 403; } access_log off; #关闭日志 expires 1d; #过时时间 } nginx -t nginx -s reload
ctrl+F5刷新页面后,1.png返回403,而B网站能够正常访问
测试防盗链:
curl的-e指定自定义的referer curl -x127.0.0.1:80 -e "http://www.jiang.com/1.txt" http://www.tobeblog.com/1.png -I *.jiang.com为白名单,因此能够访问