一、nginx目錄保護及訪問限制
nginx保護目錄的配置如下,目錄密碼保護檔案是 /usr/local/nginx/htpasswd
location ~ /admin
location ~ \.php$
注意,設定目錄密碼保護時,請注意配置區塊的位置,如果放在location ~ \.php$ {}區塊後面,如果開啟的是靜態頁面或等非php檔案,會提示要輸入密碼,但是,如果開啟的是php檔案,則設定無效,會直接執行php檔案並顯示。因此,一定要注意把要設定目錄密碼保護的區塊放在location ~ \.php$ {}區塊之前。
生成密碼檔案:
htpasswd -b -c /usr/locla/nginx/htpasswd username password;
二、nginx防盜煉
另外 nginx 防盜煉,防止別人偷圖(**、flash、軟體…)當然也是 ok 滴! 一樣也是在 server 的區段加上
}這時候 location 的意思就是保護從網頁根目錄算起,所有的指定型別的檔案都依照此規則
valid_referers none blocked 的意思就是不阻擋從哪些地方來的囉~ 這邊以空格來分隔允許的網域名稱或 ip 位置
$invalid_referer 的意思就是不允許鏈結
rewrite ^/ 的意思就是指定不允許的鏈結自動轉向到乙個頁面,或是已經有設定 404 轉址的也可以先註解掉這行再把 #return 404 的註解拿掉,就會自動跑到你設定的 404 頁面了。
特別提醒:如何來看防盜煉是否是生效的,建議大家直接看服務日誌,不要拿個**來測試。因為有些不要臉的傢伙(比如某度),他會用自己的伺服器來提供服務。就是因為這個原因,上一次我在做這個的時候,浪費了很多時間。
三、nginx**限速
nginx 還能限速再限制**執行緒! 先在 http 區段找到 limit_zone,再把注釋拿掉~
# 設定乙個叫做 crawler 的區域,大小為 20mb
limit_zone crawler $binary_remote_addr 20m;
然後在 server 的區段加上
# 限制檔案型別只能單線**
# 限制特定資料夾底下只能單線**
# location /download/
四、nginx多網域名稱設定
今天在配置php+nginx時出現乙個嚴重的問題,在nginx虛擬主機上繫結了泛網域名稱,在程式中需要用二級網域名稱指向不同的內容,但無論如何訪問都只跳轉到主網域名稱上!為了找到問題,乙個乙個試驗,得出如下結論:不管繫結多少網域名稱,用 $_server["server_name"] 只會返回虛擬主機中繫結的第乙個網域名稱!
比如繫結網域名稱如下:
server_name www.jb51.net *.jb51.net jb51.net
現在我不管用什麼網域名稱訪問, $_server["server_name"] 都只會返回 www.jb51.net !!這是個很嚴重的問題,對泛網域名稱造成了致命的影響!
既然有問題,就肯定有解決方案。。在wiki主翻了n久,終於找到了需要的資料!原來:$_server["serve程式設計客棧r_name"] 返回的值是由 nginx 的 fastcgi_param 中 server_name 提供的,而預設的配置為:
fastcgi_param server_name $server_name;
nginx中 $server_name 變數就是上面設定的網域名稱,只會返回第乙個!
這下好辦了,把上面的配置改成:
fastcgi_param server_name &axzxnjpcnbsp; $host;
就行了。
另外還需要在server_name配置後面加一行:
server_name_in_redirect off;
意思是 讓 nginx 在處理自己內部重定向時不預設使用 server_name 設定中的第乙個網域名稱!
本文標題: nginx常用功能詳解
本文位址:
Nginx 常用功能
客戶端想要訪問乙個伺服器,但是它可能無法直接訪問這台伺服器,這時候這可找一台可以訪問目標伺服器的另外一台伺服器,而這台伺服器就被當做是 人的角色 稱之為 伺服器,於是客戶端把請求發給 伺服器,由 伺服器獲得目標伺服器的資料並返回給客戶端。客戶端是清楚目標伺服器的位址的,而目標伺服器是不清楚來自客戶端...
Nginx的常用功能
server server server 192.168.20.1 8080 應用伺服器1 server 192.168.20.2 8080 應用伺服器2 server ip hash 根據客戶端ip位址hash值將請求分配給固定的乙個伺服器處理 server 192.168.20.1 8080 s...
Nginx的常用功能簡介
以上就是我了解到的nginx在不依賴第三方模組能處理的事情,下面詳細說明每種功能怎麼做 server 儲存配置檔案後啟動nginx,這樣當我們訪問localhost的時候,就相當於訪問localhost 8080了 負載均衡也是nginx常用的乙個功能,負載均衡其意思就是分攤到多個操作單元上進行執行...