jojo's blog--快樂(lè)憂(yōu)傷都與你同在
          為夢(mèng)想而來(lái),為自由而生。 性情若水,風(fēng)起水興,風(fēng)息水止,故時(shí)而激蕩,時(shí)又清平……
          posts - 11,  comments - 30,  trackbacks - 0
          Nginx ("engine x") 是一個(gè)高性能的 HTTP 和 反向代理 服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。 Nginx 是由 Igor Sysoev 為俄羅斯訪(fǎng)問(wèn)量第二的 Rambler.ru 站點(diǎn)開(kāi)發(fā)的,它已經(jīng)在該站點(diǎn)運(yùn)行超過(guò)兩年半了。Igor 將源代碼以類(lèi)BSD許可證的形式發(fā)布。盡管還是測(cè)試版,但是,Nginx 已經(jīng)因?yàn)樗姆€(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名了。

          首先是配置十分的簡(jiǎn)單,而且功能非常強(qiáng)大。真是相見(jiàn)恨晚。
          先來(lái)看看配置文件怎么寫(xiě)吧
          --------------------------------------------------------------
          worker_processes 1;
          events {
            worker_connections 1024;
          }

          http{
            upstream myproject {
                 #這里指定多個(gè)源服務(wù)器,ip:端口,80端口的話(huà)可寫(xiě)可不寫(xiě)
               server 192.168.43.158:80;
               server 192.168.41.167;
              }

            server {
               listen 8080;
               location / {
                  proxy_pass http://myproject;
                }
             }
          }
          ---------------------------------------------------------------

          nginx的負(fù)載均衡有哪些功能呢?
          [list]
          [*]如果后面的服務(wù)器其中一臺(tái)壞了,它能自動(dòng)識(shí)別,更牛的是它好了之后nginx可以馬上識(shí)別
          [*]服務(wù)器A和B,如果A的響應(yīng)時(shí)間為3,B的響應(yīng)時(shí)間為1,那么nginx會(huì)自動(dòng)調(diào)整訪(fǎng)問(wèn)B的概率是A的3倍,真正做到負(fù)載均衡
          [/list]

          在這里還是想說(shuō)說(shuō)nginx的安裝及運(yùn)行
          先到http://www.nginx.net/下載最新的源碼包。
          我下載到的是nginx-0.5.33.tar.gz
          解壓:tar zxvf nginx-0.5.33.tar.gz
          接著:./configure
          再接著:make
          最后:make install
          好的,安裝完成了。我在make的時(shí)候報(bào)了個(gè)錯(cuò),說(shuō)HTTP Rewrite 模塊 有問(wèn)題,我就./configure --without-http_rewrite_module
          然后再make,make install就可以了。
          安裝好了之后新建一個(gè)配置文件,把上面的配置文件內(nèi)容拷進(jìn)去,當(dāng)然要修改你的IP,保存為比如 load_balance.conf

          然后啟動(dòng):
          /usr/local/nginx/sbin/nginx -c load_balence.conf

          如果上面的步驟走下來(lái)有問(wèn)題的話(huà),可以參考:
          nginx的中文維基
          http://wiki.codemongers.com/NginxChs
          當(dāng)然也可以到官方網(wǎng)站
          www.nginx.net
          www.nginx.com

          由于nginx的作者是俄國(guó)人,所以英文的文檔也不是那么完善,對(duì)于我來(lái)說(shuō)nginx的最大優(yōu)點(diǎn)還是配置簡(jiǎn)單,功能強(qiáng)大
          我曾經(jīng)配過(guò) apache-jk,那真的不是一般人能配的。太復(fù)雜了,而且只能用來(lái)做tomcat的負(fù)載均衡。
          nginx就沒(méi)有這個(gè)限制,對(duì)它來(lái)說(shuō)后面是什么服務(wù)器是完全透名的。
          nginx就一點(diǎn)不爽,它本身目前還不能在windows下面跑。



          ===================Nginx Introduction==================================

             Nginx是俄羅斯人編寫(xiě)的十分輕量級(jí)的HTTP服務(wù)器,Nginx,它的發(fā)音為“engine X”,是一個(gè)高性能的HTTP和反向代理服務(wù)器,同時(shí)也是一個(gè)IMAP/POP3/SMTP 代理服務(wù)器.Nginx是由俄羅斯人 Igor Sysoev為俄羅斯訪(fǎng)問(wèn)量第二的 Rambler.ru站點(diǎn)開(kāi)發(fā)的,它已經(jīng)在該站點(diǎn)運(yùn)行超過(guò)兩年半了。Igor Sysoev在建立的項(xiàng)目時(shí),使用基于BSD許可。

             據(jù)說(shuō)他當(dāng)初是F5的成員之一,英文主頁(yè):http://nginx.net 。

             俄羅斯的一些大網(wǎng)站已經(jīng)使用它超過(guò)兩年多了,一直表現(xiàn)不凡,相信想了解nginx的朋友都讀過(guò)阿葉大哥的利用nginx實(shí)現(xiàn)負(fù)載均衡.直到2007年4月,俄羅斯大約有20%左右的虛擬主機(jī)是由nignx服務(wù)或代理的。Google在線(xiàn)安全博客中統(tǒng)計(jì)nginx服務(wù)或代理了大約所有Internet虛擬主機(jī)的 4%。而netcraft的統(tǒng)計(jì)顯示,nginx服務(wù)的主機(jī)在過(guò)去的一年里以四倍的速度增長(zhǎng)。短短的幾年里,它的排名已躍進(jìn)第9。(參見(jiàn):http://survey.netcraft.com/Reports/200707/ )

             Nginx以事件驅(qū)動(dòng)的方式編寫(xiě),所以有非常好的性能,同時(shí)也是一個(gè)非常高效的反向代理、負(fù)載平衡。其擁有匹配 Lighttpd的性能,同時(shí)還沒(méi)有Lighttpd的內(nèi)存泄漏問(wèn)題,而且Lighttpd的mod_proxy也有一些問(wèn)題并且很久沒(méi)有更新。

              因此我打算用其替代Apache應(yīng)用于Linux服務(wù)器上。但是Nginx并不支持cgi方式運(yùn)行,原因是可以減少因此帶來(lái)的一些程序上的漏洞。那么我們必須使用FastCGI方式來(lái)執(zhí)行PHP程序。

              現(xiàn)在,Igor將源代碼以類(lèi)BSD許可證的形式發(fā)布。Nginx因?yàn)樗姆€(wěn)定性、豐富的模塊庫(kù)、靈活的配置和低系統(tǒng)資源的消耗而聞名.業(yè)界一致認(rèn)為它是 Apache2.2+mod_proxy_balancer的輕量級(jí)代替者,不僅是因?yàn)轫憫?yīng)靜態(tài)頁(yè)面的速度非常快,而且它的模塊數(shù)量達(dá)到Apache的近 2/3。對(duì)proxy和rewrite模塊的支持很徹底,還支持mod_fcgi、ssl、vhosts ,適合用來(lái)做mongrel clusters的前端HTTP響應(yīng)。

             nginx做為HTTP服務(wù)器,有以下幾項(xiàng)基本特性:
              * 處理靜態(tài)文件,索引文件以及自動(dòng)索引;打開(kāi)文件描述符緩沖.
              * 無(wú)緩存的反向代理加速,簡(jiǎn)單的負(fù)載均衡和容錯(cuò).
             * FastCGI,簡(jiǎn)單的負(fù)載均衡和容錯(cuò).
              * 模塊化的結(jié)構(gòu)。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等f(wàn)ilter。如果由FastCGI或其它代理服務(wù)器處理單頁(yè)中存在的多個(gè)SSI,則這項(xiàng)處理可以并行運(yùn)行,而不需要相互等待。
          支持SSL 和 TLSSNI.

            Nginx專(zhuān)為性能優(yōu)化而開(kāi)發(fā),性能是其最重要的考量,實(shí)現(xiàn)上非常注重效率 。它支持內(nèi)核Poll模型,能經(jīng)受高負(fù)載的考驗(yàn),有報(bào)告表明能支持高達(dá) 50,000個(gè)并發(fā)連接數(shù)。

            Nginx具有很高的穩(wěn)定性。其它HTTP服務(wù)器,當(dāng)遇到訪(fǎng)問(wèn)的峰值,或者有人惡意發(fā)起慢速連接時(shí),也很可能會(huì)導(dǎo)致服務(wù)器物理內(nèi)存耗盡頻繁交換,失去響應(yīng),只能重啟服務(wù)器。例如當(dāng)前apache一旦上到200個(gè)以上進(jìn)程,web響應(yīng)速度就明顯非常緩慢了。而Nginx采取了分階段資源分配技術(shù),使得它的 CPU與內(nèi)存占用率非常低。nginx官方表示保持10,000個(gè)沒(méi)有活動(dòng)的連接,它只占2.5M內(nèi)存,所以類(lèi)似DOS這樣的攻擊對(duì)nginx來(lái)說(shuō)基本上是毫無(wú)用處的。就穩(wěn)定性而言,nginx比lighthttpd更勝一籌。

            Nginx支持熱部署。它的啟動(dòng)特別容易, 并且?guī)缀蹩梢宰龅?*24不間斷運(yùn)行,即使運(yùn)行數(shù)個(gè)月也不需要重新啟動(dòng)。你還能夠在不間斷服務(wù)的情況下,對(duì)軟件版本進(jìn)行進(jìn)行升級(jí)。

            Nginx采用master-slave模型,能夠充分利用SMP的優(yōu)勢(shì),且能夠減少工作進(jìn)程在磁盤(pán)I/O的阻塞延遲。當(dāng)采用select()/poll()調(diào)用時(shí),還可以限制每個(gè)進(jìn)程的連接數(shù)。

            Nginx代碼質(zhì)量非常高,代碼很規(guī)范,手法成熟, 模塊擴(kuò)展也很容易。特別值得一提的是強(qiáng)大的Upstream與Filter鏈。 Upstream為諸如reverse proxy,與其他服務(wù)器通信模塊的編寫(xiě)奠定了很好的基礎(chǔ)。而Filter鏈最酷的部分就是各個(gè)filter不必等待前一個(gè)filter執(zhí)行完畢。它可以把前一個(gè)filter的輸出做為當(dāng)前filter的輸入,這有點(diǎn)像Unix的管線(xiàn)。這意味著,一個(gè)模塊可以開(kāi)始?jí)嚎s從后端服務(wù)器發(fā)送過(guò)來(lái)的請(qǐng)求,且可以在模塊接收完后端服務(wù)器的整個(gè)請(qǐng)求之前把壓縮流轉(zhuǎn)向客戶(hù)端。

            Nginx采用了一些os提供的最新特性如對(duì)sendfile (Linux2.2+),accept-filter (FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,從而大大提高了性能。

            當(dāng)然,nginx還很年輕,多多少少存在一些問(wèn)題,比如:Nginx是俄羅斯人創(chuàng)建,目前文檔方面還不是很完善.因?yàn)槲臋n大多是俄語(yǔ),所以文檔方面這也是個(gè)障礙.盡管nignx的模塊比較多,但它們還不夠完善。對(duì)腳本的支持力度不夠。

            這些問(wèn)題,nginx的作者和社區(qū)都在努力解決,我們有理由相信nginx將繼續(xù)以高速的增長(zhǎng)率來(lái)分享輕量級(jí)HTTP服務(wù)器市場(chǎng),會(huì)有一個(gè)更美好的未來(lái)。
          posted on 2009-05-11 10:16 Blog of JoJo 閱讀(246) 評(píng)論(3)  編輯  收藏 所屬分類(lèi): 每日一記

          FeedBack:
          # re: 每日一學(xué) 2009/05/11 關(guān)于 nginx
          2009-05-11 10:22 | Blog of JoJo
          *********Nginx官方推出Windows版***********
          今天在看Nginx官網(wǎng)是看到Nginx推出了Windows版。
          最新的開(kāi)發(fā)為nginx/Windows-0.7.52,下載地址為:http://sysoev.ru/nginx/nginx-0.7.52.zip  回復(fù)  更多評(píng)論
            
          # re: 每日一學(xué) 2009/05/11 關(guān)于 nginx
          2009-05-11 10:25 | Blog of JoJo
          ********Nginx關(guān)閉日志*******
          用Nginx做Web服務(wù)器,如果沒(méi)有處理好日志,日志文件可能會(huì)很恐怖~10G、20G.
          可以修改nginx.conf 找到access_log:
          access_log /dev/null;
          error_log /dev/null;

          這樣全部把他們丟到系統(tǒng)的黑洞里了
          不用每時(shí)每刻都往系統(tǒng)磁盤(pán)瘋狂的讀寫(xiě)日志了 還延長(zhǎng)硬盤(pán)的壽命

          修改完,重啟Nginx( kill -HUP `cat logs/nginx.pid` )即可。  回復(fù)  更多評(píng)論
            
          # re: 每日一學(xué) 2009/05/11 關(guān)于 nginx

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          新聞分類(lèi)

          新聞檔案

          相冊(cè)

          收藏夾

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 土默特左旗| 太保市| 西平县| 顺义区| 盐池县| 仁寿县| 云阳县| 乐安县| 香港 | 汝阳县| 陇南市| 衡阳县| 赤水市| 五大连池市| 资阳市| 依安县| 原阳县| 那坡县| 德江县| 富平县| 抚顺市| 东辽县| 昆山市| 卢湾区| 武城县| 闽侯县| 集安市| 古交市| 伊春市| 区。| 客服| 安顺市| 禹州市| 绥芬河市| 涿州市| 枣阳市| 衡水市| 麻阳| 永清县| 乌兰县| 神农架林区|