天天看點

nginx的配置筆記

nginx中每一個host都會被包含在一個server{}中,在編寫nginx規則時,它支援一些基本的正則。

ex: server_name *.abc.com abc.com

在配置伺服器的時候,常用的有:

1、負載均衡;

2、正向、反向代理;

3、跳轉、反盜鍊;

4、請求、檔案緩存;

5、别名映射、URL跳轉。

以一具體應用為例:假設網站上要增設一個音樂搜尋功能。

最快最簡單的方式是使用soso或是百度的音樂搜尋,擷取音樂的真實位址,自己寫一個swf版本的音樂播放器,然後就能實作音樂搜尋、試聽和儲存音樂清單的功能了。實際上百度和soso對外站抓取其音樂網址都做了處理,不是那麼輕易就可以獲得音樂的真實位址。

其中它最重要的配置是這一段,首先是解決crossdomain.xml擷取的問題,然後是“欺騙”百度伺服器,讓百度的音樂伺服器響應請求并傳回結果。

對location進行正則比對通過 “~”實作,注意兩邊是有空格的。location ~ ^….$ {}

或者這樣location /res/xxx/  {},正則支援^、$、?、[]、\d、\w、.、*、+、|等元字元。

在if語句中,可以使用set指令将捕獲分組進行指派處理,例如:set $path $1; set $file $2;

為了保護資源和減少網絡帶寬的消耗,一般網站都會對圖檔使用防盜鍊和對圖檔的請求進行緩存設定。

請求緩存,隻解決了請求問題,而如果每次都清空緩存或是各個地方的請求都過來,就算設定緩存,壓力也大。對硬碟的IO讀寫也将較為頻繁,是以一般特殊的檔案對使用檔案緩存。

在我使用nginx中(版本号:V1.0.2)中,靜态資源是不允許使用post方式進行請求的,否則将傳回405錯誤(請求方式不被允許)。一般來講,設計合理的情況下,是不需要使用post來請求靜态資源的,而如果遇到了,還是需要去解決它,但盡量還是避免這種情況的發生。

除了暫時不能識别265g的驗證碼外,比如清空它的cookie,快速送出都很友善,以後有空要研究下破驗證碼,這樣以後就完全自動化了^_^

1、使用root,last和break都可以用/不用

2、使用alias,隻有last可以被用/不用

3、使用proxy_pass,要使用break/不用。

4、在rewrite中它們差別較大

==> break可以了解為switch中的break,而last可以了解為continue,一個是跳出server{}的比對規則,一個還将繼續比對之後的規則。

無論使用last還是break,浏覽器上面的位址欄不能被改變,而另外兩個臨時重定向302--redirect、永久重定向--permanent将改變浏覽器上位址欄。

最後列出一份常用自己常用的nginx配置模闆