webserver有哪些?

mfsh發表於2017-04-24

常用web伺服器有Apache、Nginx、Lighttpd、Tomcat、IBM Websphere等,其中應用最廣泛的是Apache。而Windows NT/2000/2003平臺下最常用的伺服器則是IIS。
Apache伺服器
Apache仍然是世界上用的最多的Web伺服器,市場佔有率達60%左右;它的優勢在開原始碼開放,可以執行在幾乎所有的Unix、Linux、Windows系統平臺上;缺點在於消耗的記憶體也比其他的web伺服器要高。

Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。由俄羅斯的程式設計師Igor Sysoev所開發,供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:京東、新浪、網易、騰訊、淘寶等。

Lighttpd伺服器
Lighttpd伺服器其目標是提供一個專門針對高效能網站,安全、快速、相容性好並且靈活的Web Server環境。它具有記憶體開銷低、CPU佔用率低、效能好,以及模組豐富等特點。 Tomcat伺服器

Tomcat伺服器是一個開放原始碼、執行servlet和JSP Web應用軟體的基於java的Web應用軟體容器。
IIS(iis php mysql環境搭建教程)

IIS是一種web服務元件,其中包括Web伺服器、FTp伺服器、NNTP伺服器和SMTP伺服器,分別用於網頁瀏覽、檔案傳輸、新聞服務和郵件傳送等方面,它使得在網路上傳送資訊成為一件很容易的事。但IIS只能執行在Windows平臺、Linux/Unix平臺上。


Apache與Nginx的優缺點比較
1、nginx相對於apache的優點:

輕量級,同樣起web 服務,比apache 佔用更少的記憶體及資源
抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能
高度模組化的設計,編寫模組相對簡單
社群活躍,各種高效能模組出品迅速啊
apache 相對於nginx 的優點:

rewrite ,比nginx 的rewrite 強大
模組超多,基本想到的都可以找到
少bug ,nginx 的bug 相對較多
超穩定
存在就是理由,一般來說,需要效能的web 服務,用nginx 。如果不需要效能只求穩定,那就apache 吧。後者的各種功能模組實現得比前者,例如ssl 的模組就比前者好,可配置項多。這裡要注意一點,epoll(freebsd 上是 kqueue )網路IO 模型是nginx 處理效能高的根本理由,但並不是所有的情況下都是epoll 大獲全勝的,如果本身提供靜態服務的就只有寥寥幾個檔案,apache 的select 模型或許比epoll 更高效能。當然,這只是根據網路IO 模型的原理作的一個假設,真正的應用還是需要實測了再說的。

2、作為 Web 伺服器:相比 Apache,Nginx 使用更少的資源,支援更多的併發連線,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。在高連線併發的情況下,Nginx是Apache伺服器不錯的替代品: Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平臺之一. 能夠支援高達 50,000 個併發連線數的響應, 感謝Nginx為我們選擇了 epoll and kqueue 作為開發模型.

Nginx作為負載均衡伺服器: Nginx 既可以在內部直接支援 Rails 和 PHP 程式對外進行服務, 也可以支援作為 HTTP代理 伺服器對外進行服務. Nginx採用C進行編寫, 不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多.

作為郵件代理伺服器: Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器), Last.fm 描述了成功並且美妙的使用經驗. Nginx 是一個安裝非常的簡單 , 配置檔案非常簡潔(還能夠支援perl語法), Bugs 非常少的伺服器: Nginx 啟動特別容易, 並且幾乎可以做到7*24不間斷執行,即使執行數個月也不需要重新啟動. 你還能夠不間斷服務的情況下進行軟體版本的升級 .

3、Nginx 配置簡潔, Apache 複雜

Nginx 靜態處理效能比 Apache 高 3倍以上
Apache 對 PHP 支援比較簡單,Nginx 需要配合其他後端用
Apache 的元件比 Nginx 多
現在 Nginx 才是 Web 伺服器的首選
4、最核心的區別在於apache是同步多程式模型,一個連線對應一個程式;nginx是非同步的,多個連線(萬級別)可以對應一個程式

5、nginx處理靜態檔案好,耗費記憶體少.但無疑apache仍然是目前的主流,有很多豐富的特性.所以還需要搭配著來.當然如果能確定nginx就適合需求,那麼使用nginx會是更經濟的方式.

6、從個人過往的使用情況來看,nginx的負載能力比apache高很多。最新的伺服器也改用nginx了。而且nginx改完配置能-t測試一下配置有沒有問題,apache重啟的時候發現配置出錯了,會很崩潰,改的時候都會非常小心翼翼現在看有好多叢集站,前端nginx抗併發,後端apache叢集,配合的也不錯。

7、nginx處理動態請求是雞肋,一般動態請求要apache去做,nginx只適合靜態和反向。

8、從我個人的經驗來看,nginx是很不錯的前端伺服器,負載效能很好,在老奔上開nginx,用webbench模擬10000個靜態檔案請求毫不吃力。apache對php等語言的支援很好,此外apache有強大的支援網路,發展時間相對nginx更久,bug少但是apache有先天不支援多核心處理負載雞肋的缺點,建議使用nginx做前端,後端用apache。大型網站建議用nginx自代的叢集功能

9、Nginx優於apache的主要兩點:1.Nginx本身就是一個反向代理伺服器 2.Nginx支援7層負載均衡;其他的當然,Nginx可能會比apache支援更高的併發,但是根據NetCraft的統計,2011年4月的統計資料,Apache依然佔有62.71%,而Nginx是7.35%,因此總得來說,Aapche依然是大部分公司的首先,因為其成熟的技術和開發社群已經也是非常不錯的效能。

10、你對web server的需求決定你的選擇。大部分情況下nginx都優於APACHE,比如說靜態檔案處理、PHP-CGI的支援、反向代理功能、前端Cache、維持連線等等。在Apache+PHP(prefork)模式下,如果PHP處理慢或者前端壓力很大的情況下,很容易出現Apache程式數飆升,從而拒絕服務的現象。

11、可以看一下nginx lua模組:https://github.com/chaoslaw…apache比nginx多的模組,可直接用lua實現apache是最流行的,why?大多數人懶得更新到nginx或者學新事物

12、對於nginx,我喜歡它配置檔案寫的很簡潔,正則配置讓很多事情變得簡單執行效率高,佔用資源少,代理功能強大,很適合做前端響應伺服器

13、Apache在處理動態有優勢,Nginx併發性比較好,CPU記憶體佔用低,如果rewrite頻繁,那還是Apache吧


Nginx與lvs的對比優勢
1,nginx工作在網路的7層,所以它可以針對http應用本身來做分流策略,比如針對域名、目錄結構等 ,相比之下lvs並不具備這樣的功能
2,nginx對網路的依賴較小,理論上只要ping得通,網頁訪問正常,nginx就能連得通 ,lvs就比較依賴於網路環境

3,nginx安裝和配置比較簡單,測試起來也很方便,因為它基本能把錯誤用日誌列印出來 ,lvs的安裝和配置、測試就要花比較長的時間了,lvs對網路依賴比較大,很多時候不能配置成功都是因為網路問題而不是配置問題,出了問題要解決也相應的會麻煩得多
4,nginx可以檢測到伺服器內部的故障 ,比如根據伺服器處理網頁返回的狀態碼、超時等等,並且會把返回錯誤的請求重新提交到另一個節點。目前lvs中ldirectd也能支援針對伺服器內部的情況來監控,但lvs的原理使其不能重發請求。重發請求這點,譬如使用者正在上傳一個檔案,而處理該上傳的節點剛好在上傳過程中出現故障,nginx會把上傳切到另一臺伺服器重新處理


nginx版本如何選擇?
注意各版本的區別:Nginx官網提供了三個型別的版本
1、Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以說是開發版
2、Stable version:最新穩定版,生產環境上建議使用的版本
3、Legacy versions:遺留的老版本的穩定版
生產環境使用Stable version:最新穩定版,現在最新的版本是nginx-1.9.11開發版本

相關文章