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>

 

相關文章
相關標籤/搜索