nginx介紹

作爲一個輕量級的http服務器,nginx與Apache相比有以下優勢:


 1)在功能上,

     它佔用很少的系統資源,能支持更多的併發鏈接,達到更高的訪問效率;


 2)在功能上,

     他是優秀的代理服務器和負載均衡服務器;在安裝配置上,安裝簡單,配置靈活


nginx的模塊與工作原理


  nginx由內核和模塊組成,內核的設計非常微小和簡潔,完成的工作也非常簡單,僅僅通過查找配置文件將客戶端請求映射到一個location block,


  nginx的模塊從結構上分爲核心模塊,基礎模塊和第三方模塊,http模塊,EVENT模塊和mail模塊屬於核心模塊,http access 模塊,http fastCGI模塊,http proxy模塊和http rewrite模塊屬於基礎模塊,而http upstream request hash 模塊,notice模塊和http access key模塊屬於第三方模塊,用戶根據自己的需要開發的模塊都屬於第三方模塊。正是有臉這麼多的模塊支撐,nginx的功能纔會如此強大


  nginx配置文件的結構

    nginx的配置文件是一個純文本文件,它一般位於nginx安裝目錄的conf目錄下,整個配置文件是以block的形式組織的,每個block一般以一個大括號“{}”來表示,block可以分爲幾個層次,整個配置文件中main指令位於最高層,在main層下面可以有event,http等層級。而在http層中又包含server層,即server block, server中又可以分爲location層,並且一個server block中可以包含多個location block

 


 nginx配置文件主要分爲4部分,main(全局部分),server(主機部分),upstream(負載均衡服務器設置)和location(url匹配特定位置的設置)。

      main部分設置的指令將影響其他所有設置:

      

      server部分的指令主要用於指定主機和端口:

   

      upstream指令主要用於負載均衡,設置一系列的後端服務器;


      location部分用於匹配網頁位置,這四者之間的關係如下:


    server繼承main,location繼承server, upstream既不會繼承其他設置也不會被繼承



upstream是nginx的http upstream模塊,這個模塊通過一個簡單的調度算法來實現客戶端ip到後端服務器的負載均衡,


nginx的負載均衡模塊目前支持4中調度算法,後兩項屬於第三方調度算法


輪詢 (默認)每個請求按時間順序逐一分配到不同的後端服務器,如果後端某臺服務器down了,故障系統會自動剔除,使用壺訪問不瘦影響


weight 指定輪詢權值,weight值越大,分配到的訪問機率越高,主要用於後端每個服務器性能不均的情況下


ip_hash,每個請求按訪問ip的hash結果分配,這樣來自同一個ip的訪客固定訪問一個後端服務器,有效解決了動態網頁存在的session共享問題


fair 這是比上面兩個更加智能的負載均衡算法 此種算法可以依據頁面大小和加載時間長短智能地進行負載均衡,也就是根據後端服務器的相應時間來分配請求,響應時間段的優先分配,nginx本身不支持fair的,如果需要使用這種調度算法,不許下載nginx的upstream_fair模塊


URL_hash,此方法按訪問URL的hash結果來分配請求,是每個URL定向到同一個後端服務器,可以進一步提高後端緩存服務器的效率,nginx本身不支持url_hash的,要使用要安裝hash軟件包


在http upstream模塊中,可以通過server指令指定後端服務器的ip地址和端口,通時還可以設定每個後端服務器在負載均衡調度中的狀態,常用的狀態有

  down,表示當前的server展示不參與負載均衡;


  backup,預留的備份機器,當其他所有的非backup機器出現故障或者忙的時候,纔會請求backup機器,因此這臺機器的壓力最輕


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