nginx介紹
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
Nginx ("engine x") 是一個(gè)高性能的 HTTP 和 反向代理 服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問(wèn)量第二的 Rambler.ru 站點(diǎn)開發(fā)的,第一個(gè)公開版本0.1.0發(fā)布于2004年10月4日。其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。 優(yōu)點(diǎn)Nginx 可以在大多數(shù) Unix like OS 上編譯運(yùn)行,并有 Windows 移植版。目前 Nginx 的1.0.9穩(wěn)定版已經(jīng)于2011年11月1日發(fā)布,開發(fā)版本已完成的為1.1.8,如果新建站點(diǎn),建議使用最新穩(wěn)定版作為生產(chǎn)版本,已有站點(diǎn)升級(jí)急迫性不高。 Nginx 的源代碼使用 2-clause BSD-like license。 Nginx 是一個(gè)很牛的高性能Web和反向代理服務(wù)器,它具有很多非常優(yōu)越的特性: 在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯(cuò)的替代品:Nginx在美國(guó)是做虛擬主機(jī)生意的老板們經(jīng)常選擇的軟件平臺(tái)之一。能夠支持高達(dá) 50,000 個(gè)并發(fā)連接數(shù)的響應(yīng),感謝Nginx為我們選擇了 epoll and kqueue作為開發(fā)模型。 Nginx作為負(fù)載均衡服務(wù)器:Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP 程序?qū)ν膺M(jìn)行服務(wù),也可以支持作為 HTTP代理服務(wù)器對(duì)外進(jìn)行服務(wù)。Nginx采用C進(jìn)行編寫,不論是系統(tǒng)資源開銷還是CPU使用效率都比 Perlbal 要好很多。 作為郵件代理服務(wù)器:Nginx 同時(shí)也是一個(gè)非常優(yōu)秀的郵件代理服務(wù)器(最早開發(fā)這個(gè)產(chǎn)品的目的之一也是作為郵件代理服務(wù)器),Last. fm 描述了成功并且美妙的使用經(jīng)驗(yàn)。 Nginx 是一個(gè)安裝非常的簡(jiǎn)單,配置文件非常簡(jiǎn)潔(還能夠支持perl語(yǔ)法),Bugs非常少的服務(wù)器:Nginx 啟動(dòng)特別容易,并且?guī)缀蹩梢宰龅?*24不間斷運(yùn)行,即使運(yùn)行數(shù)個(gè)月也不需要重新啟動(dòng)。你還能夠不間斷服務(wù)的情況下進(jìn)行軟件版本的升級(jí)。Nginx性能概述HTTP基礎(chǔ)功能處理靜態(tài)文件,索引文件以及自動(dòng)索引; 反向代理加速(無(wú)緩存),簡(jiǎn)單的負(fù)載均衡和容錯(cuò); FastCGI,簡(jiǎn)單的負(fù)載均衡和容錯(cuò); 模塊化的結(jié)構(gòu)。過(guò)濾器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI過(guò)濾器中,到同一個(gè) proxy 或者 FastCGI 的多個(gè)子請(qǐng)求并發(fā)處理; SSL 和 TLS SNI 支持; IMAP/POP3 代理服務(wù)功能: 使用外部 HTTP 認(rèn)證服務(wù)器重定向用戶到 IMAP/POP3 后端; 使用外部 HTTP 認(rèn)證服務(wù)器認(rèn)證用戶后連接重定向到內(nèi)部的 SMTP 后端;其他HTTP功能基于名稱和基于IP的虛擬服務(wù)器; Keep-alive and pipelined connections support;保持活動(dòng)和支持管線連接; Flexible configuration;靈活的配置; Reconfiguration and online upgrade without interruption of the client processing;重構(gòu),未經(jīng)客戶處理中斷在線升級(jí); Access log formats, bufferred log writing, and quick log rotation;訪問(wèn)日志格式,bufferred日志寫,快速登錄旋轉(zhuǎn); 3xx-5xx error codes redirection; 3xx的- 5xx錯(cuò)誤代碼重定向; The rewrite module;重寫模塊; Access control based on client IP address and HTTP Basic authentication;訪問(wèn)控制基于客戶端IP地址和HTTP基本認(rèn)證; The PUT, DELETE, MKCOL, COPY and MOVE methods;在PUT,DELETE鍵,MKCOL,復(fù)制和移動(dòng)方法; FLV streaming;的FLV流; Speed limitation;車速限制; Limitation of simultaneous connections or requests from one address.限制同時(shí)連接或從一個(gè)地址的請(qǐng)求。 Embedded perl.嵌入式的Perl。郵件代理服務(wù)器功能用戶重定向到IMAP/POP3后端使用外部HTTP認(rèn)證服務(wù)器; User authentication using an external HTTP authentication server and connection redirection to internal SMTP backend;用戶身份驗(yàn)證使用外部HTTP認(rèn)證服務(wù)器和連接重定向到內(nèi)部的SMTP后端; Authentication methods:驗(yàn)證方法: POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;的POP3:用戶名/密碼,的APOP,AUTH的LOGIN/PLAIN/CRAM-MD5; IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5; IMAP的:登錄,AUTH的LOGIN/PLAIN/CRAM-MD5; SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;的SMTP:AUTH的LOGIN/PLAIN/CRAM-MD5; SSL support; SSL支持; STARTTLS and STLS support. STARTTLS的和補(bǔ)充的支持。認(rèn)證方法POP3: POP3 USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5; IMAP: IMAP LOGIN; SMTP: AUTH LOGIN PLAIN CRAM-MD5; SSL 支持; 在 IMAP 和 POP3 模式下的 STARTTLS 和 STLS 支持;支持的操作系統(tǒng)FreeBSD 3.x, 4.x, 5.x, 6.x i386; FreeBSD 5.x, 6.x amd64; Linux 2.2, 2.4, 2.6 i386; Linux 2.6 amd64; Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386; MacOS X (10.4) PPC; Windows XP和Windows Server 2003中。結(jié)構(gòu)與擴(kuò)展一個(gè)主進(jìn)程和多個(gè)工作進(jìn)程。工作進(jìn)程是單線程的,且不需要特殊授權(quán)即可運(yùn)行; kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+), /dev/poll (Solaris 7 11/99+), select, 以及 poll 支持; kqueue支持的不同功能包括 EV_CLEAR, EV_DISABLE (臨時(shí)禁止事件), NOTE_LOWAT, EV_EOF, 有效數(shù)據(jù)的數(shù)目,錯(cuò)誤代碼; sendfile (FreeBSD 3.1+), sendfile (Linux 2.2+), sendfile64 (Linux 2.4.21+), 和 sendfilev (Solaris 8 7/01+) 支持; 輸入過(guò)濾 (FreeBSD 4.1+) 以及 TCP_DEFER_ACCEPT (Linux 2.4+) 支持; 10,000 非活動(dòng)的 HTTP keep-alive 連接僅需要 2.5M 內(nèi)存。 最小化的數(shù)據(jù)拷貝操作; 其他HTTP功能: 基于IP 和名稱的虛擬主機(jī)服務(wù); Memcached 的 GET 接口; 支持 keep-alive 和管道連接; 靈活簡(jiǎn)單的配置; 重新配置和在線升級(jí)而無(wú)須中斷客戶的工作進(jìn)程; 可定制的訪問(wèn)日志,日志寫入緩存,以及快捷的日志回卷; 4xx-5xx 錯(cuò)誤代碼重定向; 基于 PCRE 的 rewrite 重寫模塊; 基于客戶端IP 地址和 HTTP 基本認(rèn)證的訪問(wèn)控制; PUT, DELETE, 和 MKCOL 方法; 支持 FLV (Flash 視頻); 帶寬限制;實(shí)驗(yàn)特性內(nèi)嵌的 perl 通過(guò) aio_read()/aio_write() 的套接字工作的實(shí)驗(yàn)?zāi)K,僅在 FreeBSD 下。 對(duì)線程的實(shí)驗(yàn)化支持,F(xiàn)reeBSD 4.x 的實(shí)現(xiàn)基于 rfork() Nginx 主要的英語(yǔ)站點(diǎn)是 http://sysoev. ru/en/ 英語(yǔ)文檔草稿由 Aleksandar Lazic 完成 點(diǎn)擊。常見問(wèn)題(FAQ)某些東東不工作(URL重寫, 代理, 路徑, ...) 例如: 如URL重寫(rewrite)不工作了或者是unix的路徑(/$PATH)的問(wèn)題云云... 請(qǐng)仔細(xì)閱讀 [NginxDebugging] 并且 逐行 查看錯(cuò)誤日志。 如果你沒(méi)找到錯(cuò)誤 打起精神 試著到IRC或郵件列表里說(shuō)明一下你碰到的問(wèn)題。 有沒(méi)有其它類似的Web服務(wù)器 Cherokee Lighttpd (Lighty) thttpd 關(guān)于各自的優(yōu)缺點(diǎn)請(qǐng)使用自己喜歡的搜索引摯查找對(duì)于chroot的支持是否在計(jì)劃之中在什么情況下使用Nginx比使用squid要好? 反之亦然。 大體上來(lái)說(shuō)nginx主要用于反向加速代理而不是像squid那樣做為常規(guī)代理服務(wù)器。Nginx的最大優(yōu)勢(shì)在于高負(fù)載情況下內(nèi)存和CPU的低消耗。 我不認(rèn)為squid能給你帶來(lái)比nginx更好的性能。 有沒(méi)有人能給出一個(gè)完整的.conf配置文件來(lái)詳細(xì)的解讀一下怎么配置和測(cè)試 IMAP 模塊, 而不只是關(guān)于 IMAP 的只言片語(yǔ)啊? 依照 [NginxImapProxyExample] 開始你的配置. 關(guān)于不同配置參數(shù)的具體信息,請(qǐng)查看 [NginxMailCoreModule] 頁(yè)。 示例1: 用運(yùn)行于apache上的php腳本做后端驗(yàn)證 示例2: 使用運(yùn)行于同一個(gè)服務(wù)器的 nginx-embedded-perl 模塊作為 imap/pop代理和認(rèn)證后端讓Nginx成為以postfix做為后端的SMTP代理Nginx使用什么算法來(lái)實(shí)現(xiàn)負(fù)載均衡? 它能實(shí)現(xiàn)基于連接數(shù)的負(fù)載均衡嗎? 目前Nginx使用簡(jiǎn)單的輪巡算法,所以無(wú)法做基本鏈接計(jì)數(shù)的負(fù)載均衡。 這個(gè)可能會(huì)在將來(lái)的版本中有所改變。 我能關(guān)閉從代理服務(wù)器到后端服務(wù)器的緩存嗎或者使用上傳進(jìn)度特性?基于太多人詢問(wèn)下面的問(wèn)題:我能為了得到上傳進(jìn)度而關(guān)閉代理的緩存嗎 使用nginx我怎么才能給用戶顯示上傳進(jìn)度 ... 到目前為止 (2007-Apr-26) 還沒(méi)有辦法關(guān)閉到后端服務(wù)器的緩存.安裝Nginx模塊依賴性gzip 模塊需要 zlib 庫(kù) rewrite 模塊需要 pcre 庫(kù) ssl 功能需要 openssl 庫(kù)預(yù)先編譯好的安裝包Nginx在一些Linux發(fā)行版和BSD的各個(gè)變種版本的安裝包倉(cāng)庫(kù)中都會(huì)有,通過(guò)各個(gè)系統(tǒng)自帶的軟件包管理方法即可安裝。需要注意的是,很多預(yù)先編譯好的安裝包都比較陳舊,大多數(shù)情況下還是推薦直接從源碼編譯。官方源代碼下載特定平臺(tái)的安裝和記錄 Nginx 在 Slackware 上的編譯安裝腳本 Nginx 在ubuntu和debian上的安裝及腳本, debian針對(duì)nginx包的官方下載站點(diǎn) 使用源代碼進(jìn)行構(gòu)建 Nginx 使用 Unix 下常用的 './configure && make && make install' 過(guò)程來(lái)編譯安裝。 configure 腳本確定系統(tǒng)所具有一些特性,特別是 nginx 用來(lái)處理連接的方法。然后,它創(chuàng)建 Makefile 文件。 configure 支持下面的選項(xiàng): --prefix=示例 (最好能在同一行)./configure \ --sbin-path=/usr/local/nginx/nginx \ --conf-path=/usr/local/nginx/nginx.conf \ --pid-path=/usr/local/nginx/nginx.pid \ --with-http_ssl_module \ --with-pcre=../pcre-4.4 \ --with-zlib=../zlib-1.1.3 Example on Ubuntu/debian with libgcrypt11-dev, libpcre3-dev and libssl-dev installed (choose EITHER --with-md5 OR --with-sha1, but not both; on debian and ubuntu, they should both point to /usr/lib) ./configure --with-openssl=/usr/lib/ssl/ --with-md5=/usr/lib An Ubuntu Edgy .deb for version 0.5.2 can be found here: nginx_0.5.2-1_i386.deb. (NOTE: According to an October 2006 message md5 was used in a now broken http cache module and sha1 is used in an incomplete mysql library module and so are currently not needed.)
該文章在 2012/2/22 14:27:04 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |