静态文件过时缓存
Nginx防盗链
访问控制1/2/3
什么是静态文件的过时时间php
让图片之类的静态文件,缓存在客户端的浏览器中,在没有过时以前,浏览器不须要请求该图片。 就是为了让这些图片有一个时效性。 若是服务器上图片已经作了更新,可是客户端访问到的仍是旧的。
如何配置:css
vi 虚拟主机配置文件,增长或更改 location ~* \.(png|jpeg|gif|js|css|bmp|flv)$ { expires 1d; access_log off; }
补充:html
curl -x 用来指定目标服务器的IP和端口,例:curl -x127.0.0.1:80 -I www.aminglinux.cc bc 是一个linux系统下面的计算器,yum install -y bc
什么叫防盗链?linux
两个网站 A 和 B, A网站引用了B网站上的图片,这种行为就叫作盗链。 防盗链,就是要防止A引用B的图片。
配置:nginx
location ~ \.(png|gif|jpeg|bmp|mp3|mp4|flv)$ { valid_referers none blocked server_names *.aming.com; #白名单 if ($invalid_referer) { #黑名单返回403 return 403; } }
补充:vim
rz 上传文件,yum install lrzsz sz filename 这样去把这个文件推送到windows上 测试防盗链: curl -I -e "http://www.aaa.com/1.txt" http://www.aming.com/1.png curl的-e指定自定义的referer
实例windows
blog.lyf.top上传(rz)张图片,由于没作防盗链,bbs.lyf.com能够在论坛上引用它的网络图片,不占本身资源。浏览器
作了防盗链后,bbs.lyf.com帖子上引用不了缓存
当咱们的网站中有某一站点只是针对公司内部使用,禁止外网使用的时候可使用访问控制来实现 (限 IP)服务器
编辑虚拟主机配置文件
# vim /usr/local/nginx/conf/vhost/test.com.conf
添加以下内容
allow 127.0.0.1; //现实生产中,该白名单地址应设置为公司外网地址。 deny all;
使用curl命令测试,能够看到,使用指定白名单ip能够正常访问,使用没指定过的ip访问该站点就会受到限制。
# curl -x127.0.0.1:80 test.com/admin/1.jpg fangwen kongzhi ceshi ` # curl -x192.168.254.131:80 test.com/admin/1.jpg <html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx/1.15.3</center> </body> </html>
限制某个目录
location /admin/ //在admin目录下操做 { allow 127.0.0.1; allow 192.168.112.136; deny all; }
限制某个目录下的某类文件
location ~ .*(upload|image)/.*\.php$ { deny all; }
编辑虚拟主机配置文件
# vim /usr/local/nginx/conf/vhost/test.com.conf
添加内容
location ~ .*(upload|image)/.*\.php$ { deny all; }
在test.com目录下建立一个upload目录,并写一个PHP文件1.php
测试配置文件是否有问题,并从新加载
# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root[@localhost] ~]# /usr/local/nginx/sbin/nginx -s reload
使用curl测试限制解析是否成功,能够看到返回的代码是403,表示限制解析成功
[root[@localhost] ~]# curl -x127.0.0.1:80 test.com/upload/1.php <html> <head><title>403 Forbidden</title></head>