nginx服務筆記

  

   nginx是由俄羅斯第二大訪問網站公司於2004年開發的一款高效的web服務器和反向代理服務器開源軟件。它相比於apache有佔用資源少,併發量大,輕量級等優點。

            工作模式:  單進程模式和多進程模式。

            1:單進程模式,Nginx啓動運行兩個進程,一個以root身份運行,一個以指定用戶身份運行。後一個進程處理用戶的請求,並且是單線程的工作方式。

             2:多進程模式,啓動運行多個進程,一個以root身份運行,其他以指定用戶身份運行,並且每個進程都有多個線程。

            Nginx的模塊分爲三大類: Handlers模塊 Filter模塊和Proxy模塊.Nginx內核模塊非常輕量級,主要用來處理極簡單的工作,內核將請求交給其他模塊處理。Nignx所有的模塊都靜態編譯,在啓動時自動加載。而apache則是在配置文件中指定需要加載的模塊,在處理相應的請求時再將對應的模塊加載。

           Nginx單線程仍然比apache多進程多線程處理請求快的原理:首先,apache處理請求時爲一個線程對應一個請求,對應比爲1:1,這樣當請求量非常大時,基本上內存資源全部被佔用,當客戶端網絡帶寬受限時,服務器會非常的慢。而Nginx採用的是事件驅動模型,即將請求分爲阻塞型請求和非阻塞型請求,主線程只處理非阻塞型請求。當遇到阻塞型請求時,使用epoll函數將該請求轉移。這樣做的好處是主線程可以一直處理響應快的請求,使服務器處理請求的速度大大提高。


        Nginx可以用來做負載均衡。通過指令upstream{}在主配置文件中設置。負載均衡的後臺服務器調度算法有:

         輪詢調度:即按分發請求的時間先後來對請求進行轉發。

        wigth權值調度:按照各個服務器設置的權值進行請求分發。

        Ip_hash基於IP地址的hash函數調度:將每個Ip地址求hash函數值對應相應的服務器來對請求進行分發。

        url_hash基於url地址的hash函數調度:將url求hash函數對應服務器對請求進行分發。


         Nginx主配置文件的指令:

                             event{ } 主要設置工作模式

                             http{ } 對Nginx進行全局設置。

                            Server{} 對具體的服務器進行設置

                             location{} 對相應的url進行細粒度配置。


 

            安裝Nginx:

                下載Pcre軟件包,nginx軟件包和Md5軟件包。

                 解壓pcre庫和md5庫. 解壓nginx包 在configure配置時將解壓的目錄在配置參數中指定。

                 make  && make install.                        





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章