• Nginx指導一:介紹

    并發快速加載時間一直是任何一個高流量的網站所面臨的巨大挑戰。 為了能快速加載網站,瀏覽器一般都會同時建立多個連接以方便并行下載網站內容。 伴隨著持續不斷的連接,網站服務器就需要足夠的強大,并且能夠承受住非線性比例增長的訪問請求。
    對于基于大量的松藕合,但是又緊密合作的各功能模塊。所以對于網站來說,那些大量的松耦合,可又緊密協作的各種功能模塊就非常重要了。而 Nginx 就是完成這些重要功能的非常重要組成部分。
    Nginx (發音為 Engine X) 就是一個輕量級的,免費,開源的 HTTP以及反向代理服務器,就好象郵件服務器一樣。
    Nginx 可以完全取代了原來的 HTTP服務器,比方說:Apache, 或者就是架設在您已經建好的網站服務器基礎結構的前端,做為一個反向代理服務器來使用。

    反向代理服務器

    把 Nginx做為一個反向代理服務器來使用,可以起到如下的作用:
    1 隱藏了原來的服務器,以及他的規格參數表。
    2 分布了負載均稀。
    3 壓縮并且緩存了服務器內容。
    4 執行 A/B 測試
    5 請求和響應的控制


    HTTP 服務器 (對比 Apache)
    Nginx 服務器和 Apache有什么區別?
    Nginx 是基于事件的異步服務器,而Apache則是完全基于線程工作的。在一個相對高流量的服務器上,線程意味著更多的內存消耗。在這種情境下,基于事件的,異步的,非阻塞式的Nginx 服務器明顯占優勢。

    結構和內部構件
    他有一個主處理器以及幾個工作處理器,這幾個工作處理器運行于無特權的用戶權限下。  Nginx 可以在每個工作處理器下面處理幾千個服務器連接。


    Nginx 的工作處理代碼包括了一段核心和幾個功能模塊。 Nginx’s 模塊化結構設計可以允許您無須修改核心代碼就可以擴展網站服務器的功能。 模塊可以讀和寫網絡上的內容到存儲器中,傳輸內容,傳遞請求到原來的服務器,包括服務器端的動作以及其他事情。 模塊主要是構成了應用層及顯示功能。
    Nginx 模塊主要有幾種不同的形式: 核心模塊,事件模塊,階段處理模塊,協議模塊,變量處理模塊,過濾器,上行模塊以及負載均衡。 目前,Nginx還不支持動態加載模塊,所以所有的模塊必須要在核心模塊加載的時候一起編譯。
    Nginx  處理連接的過程就象是把所有的模塊們都象連水管一般的接在一起,成為一個鏈條。對于每一個操作,這里都會一個專門的模塊去做相對應的工作,比方說:壓縮,修改內容,執行服務器端的載入,以及和上行應用服務器會話。


    一個典型的HTTP 請求處理循環過程如下所示:
    1 客戶端發出一個  HTTP 請求。
    2 Nginx核心模塊會根據匹配該請求的配置地址文件,選擇一個合適的階段處理模塊。
    3 如果您也做了相應的配置,則負載均衡也會選擇一個上行的服務器做為代理。
    4 階段處理模塊做好自己的工作,并且把每一個輸出緩存傳送到第一個過濾模塊上。
    5 第一個過濾模塊又把輸出傳遞到第二個過濾模塊上。
    6 第二個又傳到第三個上(以此類推)。
    7 最終響應被送到客戶端。

    這種層級式的,松偶合但卻高度粘合的方法非常適合這種響應式傳遞的工作。

    Nginx 配置文件
    Nginx 配置文件被存儲在一個文本文件里, 通常他都位于/usr/local/etc/nginx 或者:/etc/nginx 下。最主要的配置文件名是:nginx.conf.  Nginx 的配置文件通常是一系列的指令,按一定的邏輯結構組織在一起。對于應用的所有行為都是通過你在配置文件里面對相應的指令進行的賦值操作。

    nginx.conf

    01 #user nobody;
    02 worker_processes 1;
    03 #error_log logs/error.log;
    04 #error_log logs/error.log notice;
    05 #error_log logs/error.log info;
    06 #pid logs/nginx.pid;
    07
    08 events {
    09     worker_connections 1024;
    10 }
    11
    12 http {
    13 ...

    以上,你所看到是一個精簡版的缺省 nginx.conf 文件(加了相應的注解解釋)。完整版的配置文件位于路徑:/usr/local/etc/nginx or /etc/nginx. Gist 有一篇文章專門詳細講解了配置文件中的每一條指令。
    這篇文章也介紹了 nginx 是什么以及他在讓網站訪問很快速的過程中到底扮演了多么重要的角色。同時我們也略微了解一下配置文件中的指令。下一篇文章會繼續解釋nginx的結構,也會給出些在不同的環境下如何配置 nginx 的詳細介紹,同時也會告訴你一些必須要用到模塊。

    不深思則不能造于道。不深思而得者,其得易失。

    名人名言- 曾國藩
    • By Nishant Modak
    • 2015-09-13
    • 1803
    • 公司新聞,網站開發,網站設計,UI
  • 少妇高潮久久久久7777