Nginx簡介
Nginx(”engine x”)是俄羅斯人Igor Sysoev(伊戈爾.塞索耶夫)編寫的一款高性能的HTTP和反向代理服務器。Nginx能夠選擇高效的epoll、Kqueue、eventport作為網絡I/O模型,在高連接并發的情況下,Nginx是Apache服務器不錯的替代品,它能夠支持高達5萬個并發連接數的響應,而內存、CPU等系統資源消耗卻非常低,運行非常穩定。
Nginx已經在俄羅斯最大的門戶網站Rambler Media 上運行了多年時間,同時俄羅斯超過20%的虛擬主機平臺采用Nginx作為反向代理服務器。
在國內也有多家互聯網平臺,如新浪博客、網易新聞、豆瓣等用作web服務器或反向代理服務器。
Nginx的安裝
可從官方網站(www.nginx.org)下載源碼編譯或下載預編譯好的rpm包。
Nginx的基本配置
Nginx的配置文件默認在/etc/nginx下,主配置文件為nginx.conf,其配置文件格式如下圖:
從上圖中可以看配置的結構由主配置段、event{}段、http{}段構成,而在http{}段中又由多個server{}段,在server{}段中又包含多個location{}段。因此不難看出一個server{}表示一臺虛擬主機。而location的作用是實現從URI到文件系統的路徑映射,而使用多個時,Nginx會根據用戶請求的URI來檢查定義的所有location,從而找出一個最佳匹配,而后應用其配置;那如何查找呢?其實在定義時可使用以下特殊符號來完成優先級的定義;
=:對URI做精確匹配;
~:對URI做正則表達式模式匹配,區分字符大小寫
~*:對URI做正則表達式模式匹配,不區分字符大小寫
^~:對URI的左半部分做匹配檢查,不區分字符大小寫
如果不帶符號則匹配URI的所有URL;
而它們是有優先級的。=的優先級最高,其次是^~,而~和~*的優先級是相等的,最后是不帶符號的;
除了上圖中出現過的指令,另外還有其他的一些常用指令,下面來一一列舉:
1、alias:定義路徑別名,文檔映射的另一種機制;僅能用于location上下文中;
2、index:定義默認資源
3、try_files:按次序嘗試文件是否存在,第一個存在的用于響應用戶的請求;
4、keepalive_requests:一次長連接上所允許請求的資源的最大數量默認為100;
5、send_timeout:向客戶端改善大響應報文的超時時長;
6、client_body_buffer_size:用于設置接收客戶端請求報文body部分的緩沖區大小;默認為16k;超出此值時,其將被暫存到磁盤上由clien_body_temp_path指令所定義的位置;
7、client_body_temp_path [level1 [level2 [level3]]]:設定用于存儲客戶端請求報文body部分的臨時存儲路徑及子目錄結構和數量;
8、open_file_cache max=N [inactive=time]:開啟Nginx的文件緩存功能
9、open_file_cache_valid:緩存有效性的檢查頻率,默認為60S;
10、open_file_cache_min_uses:在open_file_cache指令的inactive參數指定的時長內,至少應該被命中多少次才可被歸類為活動項;
11、基于IP訪問控制的:allow、deny
12、基于用戶訪問控制的:auth_basic、auth_basic_user_file
上面這些指令經常使用,而還有很多指令在這里沒有列舉出來,用到的時候可到官方網站了解(www.nginx.org)
原創文章,作者:人字拖,如若轉載,請注明出處:http://www.www58058.com/74952