1. 程式人生 > 其它 >Nginx 防盜鏈配置

Nginx 防盜鏈配置

技術標籤:nginxlinux

網站寫文章時,可能為了增加文章的生動性,我們常常加入圖片來說明,或者更加直觀的展示的問題。但是圖片被其他網站亂應用,可能會增加額外流量的費用。所以我們為了避免這種情況,就給網站加上圖片防盜鏈功能。
網站是用的 Nginx,所以我們介紹在 Nginx 如何配置網站圖片的防盜鏈。防盜鏈功能是基於 HTTP 協議的 Referer 機制,通過 referer 跟蹤來源,對來源就行對比。

配置程式碼

location ~* (gif|jpg|jpeg|png)$ {
	expire 30d;
	valid_referers none blocked *.sin2.cn;
	if ($invalid_referer) {
		rewrite ^/ https:://www.sin2.cn
	}
}

程式碼解釋

第一行:匹配對應的圖片型別

第二行:屬於配置檔案中location作用域中原有的圖片快取時間配置

第三行:valid_referers 指定資源訪問通過以下幾種方式為合法,可理解設定的白名單。

關鍵字描述
none直接通過URL訪問,無referer值的情況
blockedreferer值被防火牆修改
servername指定資源在合法的域名白名單中可以被引用,支援*萬用字元,多個域名使用空格符分開

第四行:匹配不到對應的referer來源域,則跳轉到配置的地址上去

注意

  1. 不能完全的防止圖片被使用,可以通過其他方式得到圖片
  2. 站點使用了CDN,nginx配置的防盜鏈可能不會起作用,可以在CDN管理平臺配置。