一、NGINX目錄保護及訪問限制
Nginx保護目錄的配置如下,目錄密碼保護文件是 /usr/local/nginx/htpasswd
location ~ /admin {#admin為要保護的目錄名稱,location 的意思就是保護從網頁根目錄算起的admin 目錄auth_basic ”PLEASE LOGIN”; #就是進入資料夾時會顯示的信息auth_basic_user_file /usr/local/nginx/htpasswd; #驗證用戶及密碼文件,我這邊設定是放在 /usr/local/nginx/htpasswd}
location ~ /.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /var/www/bbs$fastcgi_script_name;include fastcgi_params;}
注意,設置目錄密碼保護時,請注意配置區塊的位置,如果放在location ~ /.php$ {}區塊后面,如果打開的是靜態頁面或圖片等非php文件,會提示要輸入密碼,但是,如果打開的是php文件,則設置無效,會直接執行php文件并顯示。因此,一定要注意把要設置目錄密碼保護的區塊放在location ~ /.php$ {}區塊之前。
生成密碼文件:
htpasswd -b -c /usr/locla/nginx/htpasswd username password;
二、NGINX防盜鏈
另外 NGiNX 防盜鏈,防止別人偷圖(視頻、flash、軟件…)當然也是 OK 滴! 一樣也是在 server 的區段加上
location ~* /.(txt|ico|gif|png|bmp|jpg|jpeg|zip|rar|gz|7z|exe|mp3|flv|swf)$ {valid_referers none blocked Vevb.com www.49028c.com ;if ($invalid_referer) {rewrite ^/ //www.49028c.com/notlink.html;}}
這時候 location 的意思就是保護從網頁根目錄算起,所有的指定類型的文件都依照此規則
valid_referers none blocked 的意思就是不阻擋從哪些地方來的囉~ 這邊以空格來分隔允許的域名或 ip 位置
$invalid_referer 的意思就是不允許連結
rewrite ^/ //www.49028c.com/notlink.html; 的意思就是指定不允許的連結自動轉向到一個頁面,或是已經有設定 404 轉址的也可以先注解掉這行再把 #return 404 的注解拿掉,就會自動跑到你設定的 404 頁面了。
特別提醒:如何來看防盜鏈是否是生效的,建議大家直接看服務日志,不要拿個網站來測試。因為有些不要臉的家伙(比如某度),他會用自己的圖片服務器來提供服務。就是因為這個原因,上一次我在做這個的時候,浪費了很多時間。
三、NGINX下載限速
NGiNX 還能限速再限制下載線程! 先在 http 區段找到 limit_zone,再把注釋拿掉~
# 設定一個叫做 crawler 的區域,大小為 20MB
limit_zone crawler $binary_remote_addr 20m;
然后在 server 的區段加上
# 限制檔案類型只能單線下載
location ~ .*/.(zip|rar|gz|tar|exe|mp3|flv|swf|jpg|jpeg)${limit_conn crawler 1;limit_rate 500k; # 再加上限速}# 限制特定資料夾底下只能單線下載# location /download/ {# limit_conn crawler 1;# limit_rate 500k; # 再加上限速# }
新聞熱點
疑難解答