4..41静态文件过时缓存4.42Nginx防盗链4.43-45访问控制1/2/3

静态文件过时缓存

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

Nginx防盗链

盗链

  • 盗链是指服务提供商本身不提供服务的内容,经过技术手段绕过其它有利益的最终用户界面(如广告),直接在本身的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供不多的资源,而真正的服务提供商却得不到任何的收益。

防盗链

  • 要实现防盗链,咱们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议提及,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿连接到当前的网页或文件。换句话说,经过referer,网站能够检测目标网页访问的来源网页,若是是资源文件,则能够跟踪到显示它的网页地址。有了referer跟踪来源,就能够经过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。

什么叫防盗链?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)服务器

  1. 编辑虚拟主机配置文件

    # vim /usr/local/nginx/conf/vhost/test.com.conf
  2. 添加以下内容

    allow 127.0.0.1;   //现实生产中,该白名单地址应设置为公司外网地址。
             deny all;
  3. 使用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>

     

 设定指定目录下的PHP文件解析受限

限制某个目录

location /admin/ //在admin目录下操做

{
    allow 127.0.0.1;
    allow 192.168.112.136;
    deny all;
}

限制某个目录下的某类文件

location ~ .*(upload|image)/.*\.php$
{
    deny all;
}
  1. 编辑虚拟主机配置文件

    # vim /usr/local/nginx/conf/vhost/test.com.conf
  2. 添加内容

    location ~ .*(upload|image)/.*\.php$
     {
     deny all;
     }
  3. 在test.com目录下建立一个upload目录,并写一个PHP文件1.php

  4. 测试配置文件是否有问题,并从新加载

    # /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
  5. 使用curl测试限制解析是否成功,能够看到返回的代码是403,表示限制解析成功

    [root[@localhost] ~]# curl -x127.0.0.1:80 test.com/upload/1.php 
     <html>
     <head><title>403 Forbidden</title></head>

 

相关文章
相关标签/搜索