LAMP(6)靜態元素過期時間、配置防盜鏈、訪問控制Directory、訪問控制FilesMatch
靜態元素:(圖片、js、css)
平時我們在瀏覽器訪問網站的時候,如果裏面有這些靜態元素,瀏覽器會幫我們把它們緩存下來,再次訪問的時候訪問的速度就會快。
緩存下來的靜態元素到底緩存多久?這個是可以在服務器配置文件中定義的。(定義靜態元素過期時間)
304 狀態碼表示該文件已經緩存到用戶電腦。
定義靜態元素的失效日期:
步驟:(針對111.com這臺虛擬主機操作)
1.編輯配置文件,添加配置內容;
增加配置
<IfModule mod_expires.c> //expires模塊m
ExpiresActive on //打開該功能的開關
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
</IfModule>
改完了配置文件需要重新加載一下:
/usr/local/apache2.4/bin/apachectl -t (檢測)
/usr/local/apache2.4/bin/apachectl graceful (加載)
2.檢查一下expaire模塊是否有打開:
/usr/local/apache2.4/bin/apachectl -M |grep expires
(若無則在httpd配置文件中打開)
vim /usr/local/apache2.4/conf/httpd.conf (搜索expires )
修改後
測試:curl -x192.168.136.133:80 111.com/qq.jpg -I
如果我們把expaire模塊關了-->測試
配置防盜鏈
referer的概念:如我們在A網站的一個頁面http://a.com.a.html的鏈接去訪問到B網站的一個頁面http://b.com/b.html,那麽B網站的頁面的referer就是http://a.com.a.html。referer其實就是一個網址。
定義防盜鏈步驟:(對111.com虛擬主機操作)
1.編輯虛擬主機配置文件,增添內容:
配置文件增加如下內容
<Directory /data/wwwroot/111.com> //定義目錄
SetEnvIfNoCase Referer "http://111.com" local_ref //定義白名單
SetEnvIfNoCase Referer "http://www.example.com" local_ref //定義白名單
SetEnvIfNoCase Referer "^$" local_ref //定義白名單,^$為空的referer,當我們直接在瀏覽器中輸入訪問內容(圖片)的地址時,referer為空。
<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)"> //針對這些訪問設置防盜鏈。
Order Allow,Deny
Allow from env=local_ref //這兩行的意思是把我們上面定義的referer做允許,其他deny
</FilesMatch>
</Directory>
改完了配置文件需要重新加載一下:
/usr/local/apache2.4/bin/apachectl -t (檢測)
/usr/local/apache2.4/bin/apachectl graceful (加載)
測試:
1.瀏覽器:
(SetEnvIfNoCase Referer "^$" local_ref //定義白名單,^$為空的referer,當我們直接在瀏覽器中輸入訪問內容(圖片)的地址時,referer為空。)在瀏覽器測試時是這條內容註釋了測試的。
使用curl -e 指定refererc測試
curl -e "http://www.baidu.com/123.txt" -x192.168.136.133:80 111.com/qq.jpg -I
使用有白名單的referer
訪問控制Directory
限制ip訪問,只有白名單(允許名單ip)才能就行訪問
步驟:
修改虛擬主機配置:
核心配置文件內容
<Directory /data/wwwroot/111.com/login/>
Order deny,allow //order定義下面先執行deny還是allow
Deny from all
Allow from 192.168.136.133
</Directory>
(這裏限制的是源ip)
改完了配置文件需要重新加載一下:
/usr/local/apache2.4/bin/apachectl -t (檢測)
/usr/local/apache2.4/bin/apachectl graceful (加載)
(此時我們已經創建了login目錄和目錄裏的index.php文件)
測試:
(curl -x+ip,這裏的ip就是我們的目標ip)
(只要我們的源ip不是我們定義有允許的ip就不能訪問)
最左邊的就是來源ip
訪問控制FilesMatch
針對一個鏈接文件做訪問限制,而上面是對一個目錄做了訪問限制。
修改配置文件,添加內容:
改完了配置文件需要重新加載一下:
/usr/local/apache2.4/bin/apachectl -t (檢測)
/usr/local/apache2.4/bin/apachectl graceful (加載)
測試:
LAMP(6)靜態元素過期時間、配置防盜鏈、訪問控制Directory、訪問控制FilesMatch