-
1 # Echa攻城獅
-
2 # Web前端進階指南
Web Server中文名稱叫網頁伺服器或web伺服器。WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上資訊瀏覽服務IIS
IIS是微軟公司的Web伺服器。主要支援ASP語言環境,對於中小企業來說建立自己的網站,對外展示自己的頁面是最平常不過的事情了。目前最流行的建立WWW服務工具就要屬Apache與IIS了。IIS只能在微軟公司的windows作業系統下使用,離開了windows他將一事無成。無法移植到其他型別的作業系統中。
Tomcatjava裡面一個web容器,就是一個http請求來了,它幫你接受,可能再對請求做些處理,然後拉起你controller的程式碼,把請求傳進去,最後當controller處理結束後,再把請求簡單處理一下返回給請求者。
Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP 程式的首選。對於一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 伺服器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat 部分是Apache 伺服器的擴充套件,但它是獨立執行的,所以當你執行tomcat 時,它實際上作為一個與Apache 獨立的程序單獨執行的。
CDN中文叫內容分發網路,都是雲服務商在運營,它可以讓你的使用者在訪問資源的時候就近訪問,提高靜態資源的訪問速度。
這些都是不同的東西,不過都是概念上的,功能上有一定的重疊,不過在使用中基本都是不同的東西。
一般生產上iis,nginx,apache都是當反向代理用,少數情況會當靜態檔案伺服器用。tomcat,無論何時都是web容器。cdn一般只在生產上用,主要是提供靜態檔案服務。
至於他們的實現,理論上講用什麼語言否沒問題,不管是java node還是啥的,不過有現成的,應該沒人會造新的。
ApacheApache是一個web伺服器環境程式 啟用他可以作為web伺服器使用 不過只支援靜態網頁. 但asp,php,cgi,jsp等動態網頁的就不行. 如果要在APACHE環境下執行jsp 的話就需要一個直譯器來執行jsp網頁, 而這個jsp直譯器就是TOMCAT, 為什麼還要JDK呢?因為jsp需要連線資料庫的話就要jdk來提供連線資料庫的驅程,所以要執行jsp的web伺服器平臺就需要APACHE+TOMCAT+JDK 整合的好處是:如果客戶端請求的是靜態頁面,則只需要Apache伺服器響應請求如果客戶端請求動態頁面,則是Tomcat伺服器響應請求因為jsp是伺服器端解釋程式碼的,這樣整合就可以減少Tomcat的服務開銷。
apache是web伺服器,tomcat是應用(java)伺服器,它只是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴充套件。
Apache:普通伺服器,本身只支援html即普通網頁,它是html容器,功能像IIS一樣
tomcat:解釋java程式(jsp,serverlet),它是是jsp/servlet容器,用於釋出JSP及JAVA的
apache是一輛卡車,上面可以裝一些東西如html等。但是不能裝水,要裝水必須要有容器(桶),tomcat就是一個桶(裝像JAVA這樣的水),而這個桶也可以不放在卡車上。
訣竅是,當配置正確時,Apache 為HTML頁面服務,而Tomcat 實際上執行JSP 頁面和Servlet。另外,Tomcat和IIS等Web伺服器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的預設模式。不過,Tomcat處理靜態HTML的能力不如Apache伺服器。目前Tomcat最新版本為9.0。
NginxNginx是俄羅斯人編寫的十分輕量級的HTTP伺服器,Nginx,它的發音為“engine X”,是一個高效能的HTTP和反向代理伺服器,同時也是一個IMAP/POP3/SMTP 代理伺服器。
nginx相對於apache的優點
輕量級,同樣起web 服務,比apache佔用更少的記憶體及資源
抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能
高度模組化的設計,編寫模組相對簡單
提供負載均衡
社群活躍,各種高效能模組出品迅速
總結Nginx優點:負載均衡、反向代理、處理靜態檔案優勢。nginx處理靜態請求的速度高於Apache優點:相對於Tomcat伺服器來說處理靜態檔案是它的優勢,速度快。Apache是靜態解析,適合靜態HTML、圖片等。
Apache在處理動態有優勢,Nginx併發性比較好,CPU記憶體佔用低,如果rewrite頻繁,那還是Apache較適合。
反向代理的理解:
並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個伺服器。
-
3 # 萬能擼Sir
iis apache nginx屬於一類,都是web服務,本身提供靜態檔案訪問功能,同時又可以透過擴充套件接入其他語言的解析。tomcat是針對java類的web服務容器。可以這樣理解iis apache nginx是阿里,tomcat是京東。而cdn只是一種服務的統稱,用到的web伺服器則可能不同,有用nginx實現cdn的,也有自研的。
這類再簡單介紹一下,iis主要針對微軟系的語言。當然也支援php等。但是主要用於微軟系。
apache主要以擴充套件方式執行,比如php,如果想在apache裡執行,你得給apache寫個擴充套件,這樣才可以跑php,也就是耦合度比較高。
nginx以效能聞名。執行web主要靠反向代理和協議。這樣其他語言只需要按照協議通訊即可無需開發nginx擴充套件。耦合度低。
-
4 # IT屠工
IIS是網際網路資訊服務,是由微軟公司提供的基於執行Microsoft Windows的網際網路基本服務。
IIS是一種Web(網頁)服務元件,其中包括Web伺服器、FTP伺服器、NNTP伺服器和SMTP伺服器,分別用於網頁瀏覽、檔案傳輸、新聞服務和郵件傳送等方面,它使得在網路(包括網際網路和區域網)上釋出資訊成了一件很容易的事。
IIS是企業識別體系重要的有機組成部分,是網際網路時代企業必須關注的並進行有效管理的領域。是企業在網際網路上的名片,能讓企業更好的擁抱網際網路時代。
IIS的功能
IIS是一個World Wide Web server。Gopher server和FTP server全部包容在裡面。 IIS支援一些有趣的東西,像有編輯環境的介面(FRONTPAGE)、有全文檢索功能的(INDEX SERVER)、有多媒體功能的(NET SHOW)。
其次,IIS是隨Windows NT Server 4.0一起提供的檔案和應用程式伺服器,是在Windows NT Server上建立Internet伺服器的基本元件。它與Windows NT Server完全整合,允許使用Windows NT Server內建的安全性以及NTFS檔案系統建立強大靈活的Internet/Intranet站點。
Apache
Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數計算機作業系統中執行,由於其多平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可透過簡單的API擴充套件,將Perl/Python等直譯器編譯到伺服器中。
Apache HTTP伺服器是一個模組化的伺服器,源於NCSAhttpd伺服器,經過多次修改,成為世界使用排名第一的Web伺服器軟體。它可以執行在幾乎所有廣泛使用的計算機平臺上。
Apacheweb伺服器軟體主要功能:
1.支援最新的HTTP/1.1通訊協議
2.擁有簡單而強有力的基於檔案的配置過程
3.支援通用閘道器介面
4.支援基於IP和基於域名的虛擬主機
5.支援多種方式的HTTP認證
6.整合Perl處理模組
7.整合代理伺服器模組
8.支援實時監視伺服器狀態和定製伺服器日誌
9.支援伺服器端包含指令(SSI)
10.支援安全Socket層(SSL)
11.提供使用者會話過程的跟蹤
12.支援FastCGI
13.透過第三方模組可以支援JavaServlets
Tomcat
Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 專案中的一個核心專案,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支援,最新的Servlet 和JSP 規範總是能在Tomcat 中得到體現,因為Tomcat 技術先進、效能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。
Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP 程式的首選。對於一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 伺服器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 伺服器的擴充套件,但執行時它是獨立執行的,所以當你執行tomcat 時,它實際上作為一個與Apache 獨立的程序單獨執行的。
當配置正確時,Apache 為HTML頁面服務,而Tomcat 實際上執行JSP 頁面和Servlet。另外,Tomcat和IIS等Web伺服器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的預設模式。不過,Tomcat處理靜態HTML的能力不如Apache伺服器。
Nginx
Nginx 是一款自由的、開源的、高效能的 HTTP 伺服器和反向代理伺服器;同時也是一個 IMAP、POP3、SMTP 代理伺服器。
Nginx 可以作為一個 HTTP 伺服器進行網站的釋出處理,另外 Nginx 可以作為反向代理進行負載均衡的實現。
Nginx 使用基於事件驅動架構,使得其可以支援數以百萬級別的 TCP 連線。高度的模組化和自由軟體許可證使得第三方模組層出不窮(這是個開源的時代啊)。Nginx 是一個跨平臺伺服器,可以執行在 Linux、Windows、FreeBSD、Solaris、AIX、Mac OS 等作業系統上。這些優秀的設計帶來的極大的穩定性。CDN
CDN的全稱是Content Delivery Network,即內容分發網路。CDN是構建在現有網路基礎之上的智慧虛擬網路,依靠部署在各地的邊緣伺服器,透過中心平臺的負載均衡、內容分發、排程等功能模組,使使用者就近獲取所需內容,降低網路擁塞,提高使用者訪問響應速度和命中率。CDN的關鍵技術主要有內容儲存和分發技術。
CDN網路中包含的功能實體包括內容快取裝置、內容交換機、內容路由器、CDN內容管理系統等組成。
CDN具有以下主要功能:
1.節省骨幹網頻寬,減少頻寬需求量;
2.提供伺服器端加速,解決由於使用者訪問量大造成的伺服器過載問題;
3.服務商能使用Web Cache技術在本地快取使用者訪問過的Web頁面和物件,實現相同物件的訪問無須佔用主幹的出口頻寬,並提高使用者訪問因特網頁面的相應時間的需求;
4.能克服網站分佈不均的問題,並且能降低網站自身建設和維護成本;
5.降低“通訊風暴”的影響,提高網路訪問的穩定性。
以上是我的回答,希望可以幫助到您!
回覆列表
一個學習的總結,或者說是彙總,有些連結給出的觀點過時,已按照自己的理解經過修改編輯;
web伺服器
Web伺服器的基本功能就是提供Web資訊瀏覽服務,響應客戶端的瀏覽器請求。因為Web伺服器主要支援的協議就是HTTP,所以通常情況下HTTP伺服器和WEB伺服器是相等的。待考:支援除HTTP之外的協議的web伺服器?
不支援事務處理或資料庫連線池,但它可以配置各種策略來實現容錯性和可擴充套件性,例如負載平衡,緩衝,叢集。
IIS、Apache、Tomcat都可以屬於Web伺服器。
IIS 是微軟開發的web伺服器,需要收費,主要用來跑 asp.net asp php,只能在windows下執行。
Apache與Tomcat都是Apache開源組織開發的用於處理HTTP服務的專案,兩者都是免費的,都可以做為獨立的Web伺服器執行。Apache是Web伺服器而Tomcat是Java應用伺服器。Apache伺服器 只處理 靜態HTML,而tomcat伺服器 靜態HTML 動態 JSP Servlet 都能處理。
一般是把 Apache伺服器 與 tomcat伺服器 搭配在一起用:
1) Apache伺服器 負責處理所有 靜態的 頁面/圖片 等資訊。
2) Tomcat 只處理動態的 部分。
Apache:是C語言實現的,專門用來提供HTTP服務。特性:簡單、速度快、效能穩定、可配置(代理)
1、主要用於解析靜態文字,併發效能高,側重於HTTP服務;
2、支援靜態頁(HTML),不支援動態請求如:CGI、Servlet/JSP、PHP、ASP等;3、具有很強的可擴充套件性,可以透過外掛支援PHP,還可以單向Apache連線Tomcat實現連通;
4、Apache是世界使用排名第一的Web伺服器。
Tomcat:是Java開發的一個符合JavaEE的Servlet規範的JSP伺服器(Servlet容器),是 Apache 的擴充套件。特性:免費的Java應用伺服器
1、主要用於解析JSP/Servlet,側重於Servlet引擎;
2、支援靜態頁,但效率沒有Apache高;支援Servlet、JSP請求;
3、Tomcat本身也內建了一個HTTP伺服器用於支援靜態內容,可以透過Tomcat的配置管理工具實現與Apache整合。
Apache + Tomcat:兩者整合後優點:如果請深圳市是靜態網頁則由Apache處理,並將結果返回;如果是動態請求,Apache會將解析工作轉發給Tomcat處理,Tomcat處理後將結果透過Apache返回。這樣可以達到分工合作,實現負載遠衡,提高系統的效能。apache是web伺服器,tomcat是應用(java)伺服器,它只是一個servlet容器,可以認為是apache的擴充套件,但是可以獨立於apache執行。獨立於apache執行。換句話說,apache是一輛卡車,上面可以裝一些東西如html等。但是不能裝水,要裝水必須要有容器(桶),而這個桶也可以不放在卡車上。
Nginx是俄羅斯人編寫的十分輕量級的HTTP伺服器,Nginx,它的發音為“engine X”,是一個高效能的HTTP和反向代理伺服器,同時也是一個IMAP/POP3/SMTP 代理伺服器。
Nginx與Apache比較:
1)輕量級,同樣起web 服務,比apache佔用更少的記憶體及資源 ;
2)高併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能 ;
3)高度模組化的設計,編寫模組相對簡單 ;
4)提供負載均衡;
5)apache是同步多程序模型,一個連線對應一個程序;nginx是非同步的,多個連線(萬級別)可以對應一個程序;
歸納起來,CDN具有以下主要功能:(1)節省骨幹網頻寬,減少頻寬需求量;(2)提供伺服器端加速,解決由於使用者訪問量大造成的伺服器過載問題;(3)服務商能使用Web Cache技術在本地快取使用者訪問過的Web頁面和物件,實現相同物件的訪問無須佔用主幹的出口頻寬,並提高使用者訪問因特網頁面的相應時間的需求; (4)能克服網站分佈不均的問題,並且能降低網站自身建設和維護成本;(5)降低“通訊風暴”的影響,提高網路訪問的穩定性。