首頁 >運維 >Nginx >Ngin作為HTTP伺服器的功能

Ngin作為HTTP伺服器的功能

(*-*)浩
(*-*)浩原創
2019-11-23 16:55:093321瀏覽

Ngin作為HTTP伺服器的功能

Nginx 做為HTTP 伺服器,有以下幾個基本功能:            ( 推薦學習:nginx教學 )

#處理靜態文件,索引文件以及自動索引;開啟文件描述符緩衝.

無快取的反向代理加速,簡單的負載平衡與容錯.

FastCGI,簡單的負載平衡與容錯.

模組化的結構。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCGI 或其它代理伺服器處理單頁中存在的多個 SSI,則這項處理可以並行運行,而不需要相互等待。

支援 SSL 和 TLSSNI.

Nginx 專為效能最佳化而開發,效能是其最重要的考量,實作上非常注重效率 。 它支援核心 Poll 模型,能經受高負載的考驗,有報告表明能支援高達 50,000 個並發連接數。

Nginx 具有很高的穩定性。其它 HTTP 伺服器,當遇到訪問的峰值,或者有人惡意發起慢速連接時,也很可能會導致伺服器物理記憶體耗盡頻繁交換,失去回應,只能重啟伺服器。

例如目前 apache 一旦上到 200 個以上進程,web回應速度就明顯非常緩慢了。而 Nginx 採取了分階段資源分配技術,使得它的 CPU 與記憶體佔用率非常低。

Nginx 官方表示保持 10,000 個沒有活動的連接,它只佔 2.5M 內存,所以類似 DOS 這樣的攻擊對 Nginx 來說基本上是毫無用處的。就穩定性而言,Nginx 比 lighthttpd 更勝一籌。

Nginx 支援熱部署。它的啟動特別容易, 並且幾乎可以做到 7*24 不間斷運行,即使運行數月也不需要重新啟動。你也能夠在不間斷服務的情況下,對軟體版本進行升級。

Nginx 採用 master-slave 模型,能夠充分利用 SMP 的優勢,並且能夠減少工作進程在磁碟 I/O 的阻塞延遲。當採用 select()/poll() 呼叫時,也可以限制每個行程的連線數。

Nginx 程式碼品質非常高,程式碼很規範,手法成熟,模組擴充也很容易。特別值得一提的是強大的 Upstream 與 Filter 鏈。 Upstream 為諸如 reverse proxy,與其他伺服器通訊模組的編寫奠定了很好的基礎。

而 Filter 鏈最酷的部分就是各個 filter 不必等待前一個 filter 執行完畢。它可以把前一個 filter 的輸出做成目前 filter 的輸入,這有點像 Unix 的管線。

這意味著,一個模組可以開始壓縮從後端伺服器發送過來的請求,並且可以在模組接收後端伺服器的整個請求之前把壓縮流轉向客戶端。

Nginx 採用了一些 os 提供的最新特性如對 sendfile (Linux2.2 ),accept-filter (FreeBSD4.1 ),TCP_DEFER_ACCEPT (Linux 2.4 )的支持,從而大大提高了效能。

當然,Nginx 還很年輕,多多少少存在一些問題,比如:Nginx 是俄羅斯人創建,雖然前幾年文檔比較少,但是目前文檔方面比較全面,英文資料居多,中文的資料也比較多,而且有專門的書籍和資料可供尋找。

Nginx 的作者和社群都在不斷的努力完善,我們有理由相信 Nginx 將繼續以高速的成長率來分享輕量級 HTTP 伺服器市場,會有一個更美好的未來。

以上是Ngin作為HTTP伺服器的功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn