亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

服務(wù)器軟件大掃盲

作者 | 沉默王二

責(zé)編 | Carol

頭圖 | CSDN下載自視覺(jué)中國(guó)

先說(shuō)一句哈,自從在 B 站開(kāi)始刷視頻后,我就覺(jué)得要學(xué)的內(nèi)容實(shí)在是太多了。這篇“服務(wù)器軟件大掃盲”就是我看了羊哥的一期視頻后有感而發(fā)的,比如說(shuō) Web 服務(wù)器、HTTP 服務(wù)器、應(yīng)用服務(wù)器這三個(gè)概念,我是見(jiàn)過(guò)很多次,但如果你非要我說(shuō)出它們之間的區(qū)別的話,我只好啞口無(wú)言。

還有,我自己用過(guò)的 Tomcat、Nginx、Apache、Jetty、Undertow,它們之間有什么優(yōu)缺點(diǎn),嗯......繼續(xù)啞口無(wú)言。可能有很多小伙伴和我一樣,用過(guò),但具體的差別還真的說(shuō)不上來(lái),所以我打算借這個(gè)機(jī)會(huì)來(lái)和大家一起學(xué)習(xí)下。

(我就是課代表,我驕傲)

先來(lái)說(shuō) Web 服務(wù)器,它一般指的是網(wǎng)站服務(wù)器,可以向?yàn)g覽器(PC端或者移動(dòng)端)等 Web 客戶端提供服務(wù),供請(qǐng)求數(shù)據(jù)或者下載數(shù)據(jù)。服務(wù)器使用 HTTP (超文本傳輸協(xié)議)和客戶端瀏覽器進(jìn)行通信,因此我們也把 Web 服務(wù)器稱作為 HTTP 服務(wù)器。

再來(lái)說(shuō)應(yīng)用服務(wù)器,它是一種軟件框架,提供一個(gè)應(yīng)用程序運(yùn)行的環(huán)境。通常用于為應(yīng)用程序提供安全、數(shù)據(jù)、事務(wù)支持、負(fù)載平衡大型分布式系統(tǒng)管理等服務(wù)。

在我看來(lái),Web 服務(wù)器和應(yīng)用服務(wù)器之間的界限已經(jīng)非常模糊,后者更高級(jí)一點(diǎn),就好像公司與企業(yè)這兩個(gè)名詞之間的差別。

常見(jiàn)的 Web 服務(wù)器軟件包括 Nginx、Apache、IIS,常見(jiàn)的應(yīng)用服務(wù)器軟件包括 WebLogic、JBoss,前者更輕量級(jí),后者更重量級(jí)。

接下來(lái),我們就來(lái)嘮嘮常見(jiàn)的一些服務(wù)器軟件。

 

01、Tomcat

就我的程序生涯來(lái)看,Tomcat 用的算是最多了,沒(méi)有之一。如果 Tomcat 安裝成功的話,可以在本地的瀏覽器中訪問(wèn) http://127.0.0.1:8080 來(lái)展示它的默認(rèn)首頁(yè),見(jiàn)下圖。

服務(wù)器軟件大掃盲

Tomcat 是由 Apache 軟件基金會(huì)屬下 Jakarta 項(xiàng)目開(kāi)發(fā)的 Servlet 容器,實(shí)現(xiàn)了對(duì) Servlet 和 JAVAServer Page(JSP)的支持,并提供了作為 Web 服務(wù)器的一些特有功能。

JSP 是由 Sun Microsystems 公司主導(dǎo)建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP 可以響應(yīng)客戶端發(fā)送的請(qǐng)求,并根據(jù)請(qǐng)求內(nèi)容動(dòng)態(tài)地生成 html、XML 或其他格式文檔的 Web 網(wǎng)頁(yè),然后返回給請(qǐng)求者。

JSP 以 Java 語(yǔ)言作為腳本語(yǔ)言,為用戶的 HTTP 請(qǐng)求提供服務(wù),并能與服務(wù)器上的其它 Java 程序共同處理復(fù)雜的業(yè)務(wù)需求。我是一名三線城市的 Java 程序員,免不了要開(kāi)發(fā)一些小型網(wǎng)站,這也就是為什么我用 Tomcat 最多的原因。

 

02、Nginx

Nginx 是一款輕量級(jí)的 Web 服務(wù)器、也支持反向代理,由于它的內(nèi)存占用少,啟動(dòng)極快,高并發(fā)能力強(qiáng),所以在互聯(lián)網(wǎng)項(xiàng)目中廣泛應(yīng)用。

服務(wù)器軟件大掃盲

關(guān)于 Nginx,比較令人遺憾的一件事是,它的作者伊戈?duì)?middot;賽索耶夫進(jìn)了監(jiān)獄。

Nginx 在官方測(cè)試的結(jié)果中,能夠支持五萬(wàn)個(gè)并行連接,國(guó)內(nèi)比較有名的公司,比如說(shuō)百度、京東、新浪、網(wǎng)易、騰訊、淘寶等都在使用。

不知道你有沒(méi)有聽(tīng)過(guò)虛擬主機(jī)的概念,就是在 Web 服務(wù)里有一個(gè)獨(dú)立的網(wǎng)站站點(diǎn),這個(gè)站點(diǎn)對(duì)應(yīng)獨(dú)立的域名(也可能是IP 或端口),具有獨(dú)立的程序及資源,可以獨(dú)立地對(duì)外提供服務(wù)供用戶訪問(wèn)。

虛擬主機(jī)有三種類型:基于域名的虛擬主機(jī)、基于端口的虛擬主機(jī)、基于 IP 的虛擬主機(jī)。

Nginx 可以使用一個(gè) server{}標(biāo)簽來(lái)標(biāo)識(shí)一個(gè)虛擬主機(jī),一個(gè) Web 服務(wù)里可以有多個(gè)虛擬主機(jī)標(biāo)簽對(duì),即可以同時(shí)支持多個(gè)虛擬主機(jī)站點(diǎn)。這一點(diǎn),非常的實(shí)用。

 

03、Apache

最開(kāi)始的時(shí)候,我以為 Apache 就是 Tomcat,傻傻分不清楚。后來(lái)知道它們完全不同,logo 就不同(說(shuō)什么大實(shí)話)。

服務(wù)器軟件大掃盲

Apache 一般是指 Apache HTTP Server,是 Apache 軟件基金會(huì)(和 Tomcat 同屬一家基金會(huì),因此容易混淆)下的一個(gè)網(wǎng)頁(yè)服務(wù)器軟件。由于其跨平臺(tái)和安全性,被廣泛使用,是最流行的 Web 服務(wù)器軟件之一。它快速、可靠并且可通過(guò)簡(jiǎn)單的 API 擴(kuò)展。

我是在服務(wù)器上安裝 wordPress/ target=_blank class=infotextkey>WordPress 的時(shí)候用到了 Apache,當(dāng)時(shí)并不知道有 LAMP 的存在,所以安裝的過(guò)程中吃了很多苦,關(guān)鍵是最后沒(méi)有安裝成功,大寫(xiě)的尷尬。

最后還是在青銅群里的一個(gè)群友的遠(yuǎn)程幫助下才完成安裝的,他是搞 php 的。LAMP 就是他告訴我的,安裝起來(lái)非常的傻瓜式,非常適合我這種對(duì)命令行有抗拒心理的程序員。

LAMP 是指一組運(yùn)行動(dòng)態(tài)網(wǎng)站或者服務(wù)器的自由軟件名稱首字母縮寫(xiě):

  • linux,操作系統(tǒng)(一般服務(wù)器軟件都安裝在 Linux 上,性能極佳)

  • Apache,網(wǎng)頁(yè)服務(wù)器(就是 Apache HTTP Server)

  • MariaDB 或 MySQL,數(shù)據(jù)庫(kù)管理系統(tǒng)

  • PHP、Perl 或 Python,腳本語(yǔ)言

這些軟件配合起來(lái)使用的時(shí)候,極具活力,它的變體還有很多,另外一個(gè)比較有名的就是 LNMP,用 Nginx 代替 Apache。

 

04、Jetty

Jetty 和 Tomcat 有很多相似之處,比如說(shuō)可以為 JSP 和 Servlet 提供運(yùn)行時(shí)環(huán)境。Jetty 是 Java 語(yǔ)言編寫(xiě)的,它的 API 以一組 JAR 包的形式發(fā)布。

服務(wù)器軟件大掃盲

與 Tomcat 相比,Jetty 可以同時(shí)處理大量鏈接并且長(zhǎng)時(shí)間的保持這些鏈接,例如,一些 Web 聊天應(yīng)用非常適合用 Jetty 服務(wù)器,比如說(shuō)淘寶的 Web 版旺旺。

Jetty 的架構(gòu)比較簡(jiǎn)單,它有一個(gè)基本數(shù)據(jù)模型,這個(gè)數(shù)據(jù)模型就是 Handler,所有可以被擴(kuò)展的組件都可以作為一個(gè) Handler,添加到 Server 中,Jetty 就是幫我們管理這些 Handler 的。

 

05、Undertow

Undertow 是一個(gè)用 Java 編寫(xiě)的、靈活的、高性能的 Web 服務(wù)器,提供基于 NIO 的阻塞和非阻塞 API。

Undertow 可以嵌入到應(yīng)用程序中或獨(dú)立運(yùn)行,只需幾行代碼,非常容易上手。下面這段代碼是官網(wǎng)提供的一個(gè)使用 Async IO 的簡(jiǎn)單 Hello World 服務(wù)器示例:

public class HelloWorldServer {

public static void main(final String[] args) {
Undertow server = Undertow.builder
.addHttpListener(8080, "localhost")
.setHandler(new HttpHandler {
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
exchange.getResponseHeaders.put(Headers.CONTENT_TYPE, "text/plain");
exchange.getResponseSender.send("Hello World");
}
}).build;
server.start;
}
}

直接運(yùn)行后,在瀏覽器中地址欄中輸入 http://localhost:8080就可以訪問(wèn)到了。是不是感覺(jué)非常輕巧?

如果有小伙伴使用過(guò) JFinal 開(kāi)發(fā)過(guò)小型網(wǎng)站的話,對(duì) Undertow 應(yīng)該不會(huì)陌生,因?yàn)?JFinal 的默認(rèn)容器已經(jīng)切換到了 Undertow。

JFinal 是基于 Java 語(yǔ)言的極速 WEB + ORM 框架,其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速、代碼量少、學(xué)習(xí)簡(jiǎn)單、功能強(qiáng)大、輕量級(jí)、易擴(kuò)展、Restful。

 

06、企業(yè)級(jí)

至于其他的一些企業(yè)級(jí)服務(wù)器軟件,我個(gè)人沒(méi)有用過(guò),就不細(xì)說(shuō)了。

  • JBoss,紅帽子收購(gòu)過(guò),后更名為 WildFly。

  • WebLogic,甲骨文出品。

  • WebSphere,IBM 公司出品。

相信小伙伴們看了出品方,就知道這些服務(wù)器軟件足夠的重量級(jí),都是大佬,都是大佬。

聲明:本文為作者投稿,版權(quán)歸其個(gè)人所有。

分享到:
標(biāo)簽:服務(wù)器 軟件
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定