Nginx從聽說到學會

2021-08-20 02:34:58 字數 2624 閱讀 7619

沒有聽過nginx?那麼一定聽過它的「同行」apache吧!nginx同apache一樣都是一種web伺服器。基於rest架構風格,以統一資源描述符(uniform resources identifier)uri或者統一資源定位符(uniform resources locator)url作為溝通依據,通過http協議提供各種網路服務。

然而,這些伺服器在設計之初受到當時環境的侷限,例如當時的使用者規模,網路頻寬,產品特點等侷限並且各自的定位和發展都不盡相同。這也使得各個web伺服器有著各自鮮明的特點。

apache的發展時期很長,而且是毫無爭議的世界第一大伺服器。它有著很多有點:穩定、開源、跨平台等等。但是由於它出現的時間太長了。它興起的年代,網際網路產業遠比不上現在。所以它被設計為乙個重量級的。不支援高併發的伺服器。在apache上執行數以萬計的併發訪問,會導致伺服器消耗大量記憶體。作業系統對其進行程序或執行緒間的切換也消耗了大量的cpu資源,導致http請求的平均響應速度降低。

這些都決定了apache不可能成為高效能web伺服器,輕量級高併發伺服器nginx和lighttpd就應運而生了。

又是拜大神的時候了,這次被選中的人是俄羅斯的工程師igor sysoev,他在為rambler media工作期間,使用c語言開發了nginx。nginx作為web伺服器一直為rambler media提供出色而又穩定的服務。

然後呢,igor sysoev將nginx**開源,並且賦予自由軟體許可證。

由於:於是,duang的一下。nginx火了。

lighttpd是乙個具有非常低的記憶體開銷,cpu佔用率低,效能好,以及豐富的模組等特點。lighttpd是眾多opensource輕量級的web server中較為優秀的乙個。支援fastcgi, cgi, auth,輸出壓縮(output compress), url重寫, alias等重要功能。

lighttpd使用fastcgi方式執行php,它會使用很少的php程序響應很大的併發量。

fastcgi的優點在於:

2)apache

apache是世界排名第一的web伺服器, 根據netcraft所作的調查,世界上百分之五十以上的web伺服器在使用apache.

2023年4月, 最早的apache(0.6.2版)由apache group公布發行.apache group是乙個完全通過internet進行運作的非盈利機構, 由它來決定apache web伺服器的標準發行版中應該包含哪些內容. 准許任何人修改隱錯, 提供新的特徵和將它移植到新的平台上, 以及其它的工作. 當新的**被提交給apache group時, 該團體審核它的具體內容, 進行測試 如果認為滿意, 該**就會被整合到apache的主要發行版中。

apache 的特性:

3)nginx

nginx是俄羅斯人編寫的十分輕量級的http伺服器,nginx,它的發音為「engine x」,是乙個高效能的http和反向**伺服器,同時也是乙個imap/pop3/smtp **伺服器.nginx是由俄羅斯人 igor sysoev為俄羅斯訪問量第二的 rambler.ru站點開發.

nginx以事件驅動的方式編寫,所以有非常好的效能,同時也是乙個非常高效的反向**、負載平衡。其擁有匹配 lighttpd的效能,同時還沒有lighttpd的記憶體洩漏問題,而且lighttpd的mod_proxy也有一些問題並且很久沒有更新。但是nginx並不支援cgi方式執行,原因是可以減少因此帶來的一些程式上的漏洞。所以必須使用fastcgi方式來執行php程式。

nginx做為http伺服器,有以下幾項基本特性:

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

nginx具有很高的穩定性。其它http伺服器,當遇到訪問的峰值,或者有人惡意發起慢速連線時,也很可能會導致伺服器物理記憶體耗盡頻繁交換,失去響應,只能重啟伺服器。例如當前apache一旦上到200個以上程序,web響應速度就明顯非常緩慢了。而nginx採取了分階段資源分配技術,使得它的cpu與記憶體佔用率非常低。nginx官方表示保持10,000個沒有活動的連線,它只佔2.5m記憶體,所以類似dos這樣的攻擊對nginx來說基本上是毫無用處的。就穩定性而言,nginx比lighthttpd更勝一籌。

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

非常好非常好

一般rewriter

好非常好

一般fcgi不好好

非常好熱部署

不支援支援

不支援系統壓力比較

很大很小

比較小穩定性

好非常好

不好安全性好一般

一般靜態檔案處理

一般非常好

好反向**

一般非常好

一般

學會配置nginx

一 作為一名開發人員,大家可能經常會用到伺服器,但是一般線上的伺服器可能都是公司公用的,而且線上的伺服器一般也不是能隨隨便便給個人用的,所以部署本地伺服器看來是一遍必不可少的事情和能力呀,所以,nginx騰空而出,它可以在任何一款vim終端配置部署,只要你能配置的好,它就是一款很不錯的本地伺服器,對...

從「PRD怎麼寫」說到產品思維

prd怎麼寫?這個問題可以算是困擾產品新人排名前三的問題之一了。但我顯然不會具體說應該怎麼寫,不會說模板 形式 原則這些落地的東西,而想和大家聊聊,怎麼把產品思維反作用於回答這個問題,反作用於產品工作本身。第一,問專家不如問使用者。如果我們把prd也看做乙個產品,那麼使用者就是開發 測試等人,除了問...

從校園到職場,聽說你不想打雜

很多年輕人剛進入職場的時候,最大的抱怨就是,我可是學什麼什麼的,我的目標是做什麼什麼,為什麼老闆讓我打雜。什麼是打雜?有些是非技術性的,列印個檔案,美化一下 幫部門老大跑腿買個咖啡,遞送個資料,或者去清理一下陳舊的檔案,甚至是體力活,比如搬運機器裝置什麼的。有些是帶一些技術性的,調整一下頁面版式,臨...