靜態文件過時緩存
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>