說明:服務器A:源服務器、服務器B:目標服務器php
場景:服務器A的一篇文章被服務器B經過爬蟲抓取 但圖片連接仍是經過服務器B進行訪問nginx
此時,圖片數量多或文件過大,會對服務器A形成帶寬的消耗算法
思路:添加防盜鏈瀏覽器
解決:經過防盜鏈來進行處理服務器
1.經過Referer來進行判斷【不推薦 referer能夠進行僞造 僅提升訪問門檻】函數
····安裝nginx模塊 ngx_http_referer_module 進行配置以達到效果加密
2.經過sgin(簽名)進行驗證【推薦 簽名算法驗證 難以破解】code
····安裝nginx模塊 accesskey模塊圖片
#開啓accesskey accesskey on #設置加密模式md5和sha-1 二選一 accesskey_hashmethod md5|sha-1; #設置加密參數 可自行定義 accesskey_arg "sgin"; #設置加密算法 按照博主的算法 應該是這樣 md5(check_sign.客戶端IP) accesskey_signature "check_sign$remote_addr"; #搞定以後重啓一下nginx
····接下來在php進行加密 若是不帶加密參數進行驗證 會返回403md5
<?php //假設當前目錄下存在logo.png // 在瀏覽器中預覽 發現返回403 echo "<img src='./logo.png'>"; // 再次在瀏覽器中預覽 能夠正常顯示 (若是你選擇的是sha-1加密則使用sha1函數進行加密) $sign = md5('sign'.$_SERVER['REMOTE_ADDR']); echo "<img src='./logo.png?sign={$sign}'>"; // 須要注意 php和nginx的加密必定要相同 不然沒法驗證成功 ?>