最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單談?wù)刟pache與nginx

 更新時(shí)間:2014年12月23日 09:47:11   投稿:hebedich  
簡單的說apache是計(jì)算密集型,nginx是io密集型,各有優(yōu)勢,不存在誰取代誰

一、 關(guān)于Apache與Nginx的優(yōu)勢比較

    不斷有人跟我說Nginx比Apache好、比Apache快之類。Nginx更主要是作為反向代理,而非Web服務(wù)器使用。我翻譯過一本關(guān)于反向代理的技術(shù)書籍,同時(shí)精通Apache API開發(fā),對Nginx和Apache的工作原理都略有了解,粗談一下看法。

  不管是Nginx還是Squid這種反向代理,其網(wǎng)絡(luò)模式都是事件驅(qū)動(dòng)。事件驅(qū)動(dòng)其實(shí)是很老的技術(shù),早期的select、poll都是如此。后來基于內(nèi)核通知的更高級(jí)事件機(jī)制出現(xiàn),如libevent里的epoll,使事件驅(qū)動(dòng)性能得以提高。事件驅(qū)動(dòng)的本質(zhì)還是IO事件,應(yīng)用程序在多個(gè)IO句柄間快速切換,實(shí)現(xiàn)所謂的異步IO。事件驅(qū)動(dòng)服務(wù)器,最適合做的就是這種IO密集型工作,如反向代理,它在客戶端與WEB服務(wù)器之間起一個(gè)數(shù)據(jù)中轉(zhuǎn)作用,純粹是IO操作,自身并不涉及到復(fù)雜計(jì)算。反向代理用事件驅(qū)動(dòng)來做,顯然更好,一個(gè)工作進(jìn)程就可以run了,沒有進(jìn)程、線程管理的開銷,CPU、內(nèi)存消耗都小。

  所以Nginx、Squid都是這樣做的。當(dāng)然,Nginx也可以是多進(jìn)程 + 事件驅(qū)動(dòng)的模式,幾個(gè)進(jìn)程跑libevent,不需要Apache那樣動(dòng)輒數(shù)百的進(jìn)程數(shù)。Nginx處理靜態(tài)文件效果也很好,那是因?yàn)殪o態(tài)文件本身也是磁盤IO操作,處理過程一樣。至于說多少萬的并發(fā)連接,這個(gè)毫無意義。我隨手寫個(gè)網(wǎng)絡(luò)程序都能處理幾萬的并發(fā),但如果大部分客戶端阻塞在那里,就沒什么價(jià)值。

  再看看Apache或者Resin這類應(yīng)用服務(wù)器,之所以稱他們?yōu)閼?yīng)用服務(wù)器,是因?yàn)樗麄冋娴囊芫唧w的業(yè)務(wù)應(yīng)用,如科學(xué)計(jì)算、圖形圖像、數(shù)據(jù)庫讀寫等。它們很可能是CPU密集型的服務(wù),事件驅(qū)動(dòng)并不合適。例如一個(gè)計(jì)算耗時(shí)2秒,那么這2秒就是完全阻塞的,什么event都沒用。想想MySQL如果改成事件驅(qū)動(dòng)會(huì)怎么樣,一個(gè)大型的join或sort就會(huì)阻塞住所有客戶端。這個(gè)時(shí)候多進(jìn)程或線程就體現(xiàn)出優(yōu)勢,每個(gè)進(jìn)程各干各的事,互不阻塞和干擾。當(dāng)然,現(xiàn)代CPU越來越快,單個(gè)計(jì)算阻塞的時(shí)間可能很小,但只要有阻塞,事件編程就毫無優(yōu)勢。所以進(jìn)程、線程這類技術(shù),并不會(huì)消失,而是與事件機(jī)制相輔相成,長期存在。

  總結(jié)之,事件驅(qū)動(dòng)適合于IO密集型服務(wù),多進(jìn)程或線程適合于CPU密集型服務(wù),它們各有各的優(yōu)勢,并不存在誰取代誰的傾向。再盲目的言之Nginx可以取代Apache的,該好好反思了。

二、nginx

基于nginx的tomcat負(fù)載均衡和集群(超簡單)  側(cè)重點(diǎn)簡單配置,缺點(diǎn)多人訪問時(shí),session
使用基于Nginx集群策略后置模式避免Session復(fù)制
開啟Nginx的gzip壓縮功能詳解
Nginx 反向代理、負(fù)載均衡、頁面緩存、URL重寫及讀寫分離詳解

1 正向代理的概念 

       正向代理,也就是傳說中的代理,他的工作原理就像一個(gè)跳板,簡單的說,我是一個(gè)用戶,我訪問不了某網(wǎng)站,但是我能訪問一個(gè)代理服務(wù)器,這個(gè)代理服務(wù)器呢,他能訪問那個(gè)我不能訪問的網(wǎng)站,于是我先連上代理服務(wù)器,告訴他我需要那個(gè)無法訪問網(wǎng)站的內(nèi)容,代理服務(wù)器去取回來,然后分會(huì)給我。從網(wǎng)站的角度,只能在代理服務(wù)器來取內(nèi)容的時(shí)候有一條記錄,有時(shí)候并不知道是用戶的請求,也隱藏了用戶的資料,這取決于代理告不告訴網(wǎng)站。
      結(jié)論就是,正向代理是一個(gè)位于客戶端和服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個(gè)請求并制定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端??蛻舳吮仨氁M(jìn)行一些特別的設(shè)置才能使用正向代理。

2 反向代理的概念
       例如 用戶訪問 http://www.test.com/readme,但是www.test.com上并不存在readme頁面,他是偷偷從另外一臺(tái)服務(wù)器取回來,然后作為自己的內(nèi)容返回用戶,但用戶并不知情。這里所提到的www.test.com 這個(gè)域名對應(yīng)額服務(wù)器就設(shè)置了反向代理功能。
       結(jié)論就是,反向代理正好相反,對于客戶端而言它就像是原始服務(wù)器,并且客戶端不需要進(jìn)行任何特別設(shè)置??蛻舳讼蚍聪虼淼拿臻g(name-space)中的內(nèi)容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務(wù)器)轉(zhuǎn)交請求,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容元貝就是它自己的一樣。           

3 兩者區(qū)別
     從用途上來講:
             正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問Internet的途徑。正向代理還可以使用緩存特性減少網(wǎng)絡(luò)使用率。
             反向代理的典型用途是將防火墻后面的代理服務(wù)器提供給Internet用戶訪問。反向代理還可以為后端的多臺(tái)服務(wù)器提供負(fù)載平衡,或?yàn)楹蠖溯^慢的服務(wù)器提供緩沖服務(wù)。另外反向代理還可以啟用高級(jí)URL策略和管理技術(shù),從而是處于不同web服務(wù)器系統(tǒng)的web頁面同時(shí)存在于同一個(gè)URL空間下。
      從安全性來講:
              正向代理允許客戶端通過訪問任意網(wǎng)站并且隱藏客戶自身,因此你必須采取安全措施以確保僅為經(jīng)過授權(quán)的客戶端提供服務(wù)。
              反向代理對外都是透明的,訪問者并不自導(dǎo)自己訪問的是一個(gè)代理。

5. 看到一本關(guān)于nginx開發(fā)的書《深入理解Nginx:模塊開發(fā)與架構(gòu)解析》

  阿里巴巴資深Nginx專家撰寫,透徹解析Nginx架構(gòu),詳解Nginx模塊開發(fā)方法和技巧。知道不適合我,但是很膜拜。

  另外一直關(guān)注的一本書總是缺貨  叫《Web協(xié)議與實(shí)踐》o(╯□╰)o

相關(guān)文章

  • Apache的壓力測試以及web性能優(yōu)化的常用知識(shí)總結(jié)

    Apache的壓力測試以及web性能優(yōu)化的常用知識(shí)總結(jié)

    這篇文章主要介紹了Apache的壓力測試以及web性能優(yōu)化的常用知識(shí)總結(jié),筆記由《構(gòu)建高性能web站點(diǎn)》這本高人氣書籍整理而來,需要的朋友可以參考下
    2015-12-12
  • ubuntu下Matlab_Linux添加工具包操作步驟

    ubuntu下Matlab_Linux添加工具包操作步驟

    本文以rvctools為例給大家通過圖文并茂的形式介紹ubuntu下Matlab_Linux添加工具包的教程,需要的朋友可以參考下
    2018-03-03
  • 詳解Nginx服務(wù)器中的Socket切分

    詳解Nginx服務(wù)器中的Socket切分

    這篇文章主要介紹了Nginx服務(wù)器中的Socket切分,以新發(fā)布的1.9.1版本的Nginx為基礎(chǔ),需要的朋友可以參考下
    2015-06-06
  • 服務(wù)器端包含、嵌入技術(shù)SSI(Server SideInc lude)詳解

    服務(wù)器端包含、嵌入技術(shù)SSI(Server SideInc lude)詳解

    這篇文章主要介紹了服務(wù)器端包含、嵌入技術(shù)SSI(Server SideInc lude)詳解,本文包含SSI簡介、SSI的語法、SSI的一些常用命令等,SSI最明顯的特征是網(wǎng)頁的擴(kuò)展名師.shtml,一些大網(wǎng)站也常用這種技術(shù),需要的朋友可以參考下
    2014-07-07
  • Linux包管理工具yum、apt的區(qū)別

    Linux包管理工具yum、apt的區(qū)別

    Linux系統(tǒng)基本分兩大類:RedHat系列:Redhat、Centos、Fedora等;Debian系列:Debian、Ubuntu?等。yum是一個(gè)在?Fedora?和?RedHat?以及?SUSE?中的?Shell?前端軟件包管理器。apt是一個(gè)在?Debian?和Ubuntu中的Shell前端軟件包管理器。
    2023-04-04
  • Linux lseek函數(shù)的使用詳解

    Linux lseek函數(shù)的使用詳解

    這篇文章主要介紹了Linux lseek函數(shù)的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Apache防DDOS模塊mod_evasive安裝和配置方法詳解

    Apache防DDOS模塊mod_evasive安裝和配置方法詳解

    這篇文章主要介紹了Apache防DDOS模塊mod_evasive安裝和配置方法,需要的朋友可以參考下
    2014-03-03
  • 學(xué)習(xí)Vim合并行的方法和技巧

    學(xué)習(xí)Vim合并行的方法和技巧

    這篇文章主要介紹了學(xué)習(xí)Vim合并行的方法以及代碼實(shí)現(xiàn)過程,值得參考,一起來學(xué)習(xí)下。
    2017-11-11
  • 使用ElasticSearch集群搭建步驟

    使用ElasticSearch集群搭建步驟

    本文詳細(xì)闡述了Elasticsearch搜索引擎的安裝與配置過程,包括使用RPM進(jìn)行安裝,設(shè)置基本安全性,加密HTTP客戶端通信,以及配置集群等步驟,Elasticsearch是一個(gè)開源的分布式搜索和分析引擎,適用于全文搜索、結(jié)構(gòu)化搜索、分析和可視化大規(guī)模數(shù)據(jù)
    2024-10-10
  • Ubuntu 16.04無法切換root權(quán)限問題的解決

    Ubuntu 16.04無法切換root權(quán)限問題的解決

    root權(quán)限相信對大家來說都不陌生,下面這篇文章主要給大家介紹了關(guān)于Ubuntu 16.04無法切換root權(quán)限問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評(píng)論

苍南县| 肥城市| 鄢陵县| 彭水| 富宁县| 清水县| 邮箱| 定结县| 乐平市| 会宁县| 老河口市| 太白县| 高阳县| 广汉市| 中阳县| 西丰县| 且末县| 安阳县| 略阳县| 淳安县| 吉水县| 安陆市| 忻州市| 安塞县| 来凤县| 东台市| 藁城市| 保山市| 营口市| 富阳市| 毕节市| 噶尔县| 关岭| 齐河县| 雅江县| 中江县| 绥德县| 建宁县| 高平市| 米脂县| 康定县|