沒有聽過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也看做乙個產品,那麼使用者就是開發 測試等人,除了問...
從校園到職場,聽說你不想打雜
很多年輕人剛進入職場的時候,最大的抱怨就是,我可是學什麼什麼的,我的目標是做什麼什麼,為什麼老闆讓我打雜。什麼是打雜?有些是非技術性的,列印個檔案,美化一下 幫部門老大跑腿買個咖啡,遞送個資料,或者去清理一下陳舊的檔案,甚至是體力活,比如搬運機器裝置什麼的。有些是帶一些技術性的,調整一下頁面版式,臨...