• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            Nginx源碼學習之編譯、構建與安裝(cygwin環境)

            Nginx介紹:

            Nginx ("engine x") 是一個高性能的 HTTP 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點運行超過兩年半了。Igor 將源代碼以類BSD許可證的形式發布。盡管還是測試版,但是,Nginx 已經因為它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名了。

            1.cygwin
            環境安裝
               http://www.cygwin.com/下載setup.exe安裝程序,具體安裝過程請到google找吧。這里需要注意的是:一定要安裝上opensslpcrezlib這三個包,因為nginx部分源碼需要用到這三個庫。

            2.nginx
            編譯與構建
               http://nginx.net/下載源代碼包(最新穩定版:nginx-0.5.35,測試版:nginx-0.6.25),假設下載下來的源代碼包存放在C盤根目錄下(例如全路徑名為c:\nginx-0.6.25.tar.gz)
               打開cygwin環境,cdC盤根目錄(命令:cd /cygdrive/c),解壓源代碼包(首先執行命令gzip -d nginx-0.6.25.tar.gz得到nginx-0.6.25.tar文件,然后再執行命令tar xvf nginx-0.6.25.tar),這時應該看到C盤下有一個新目錄nginx-0.6.25cd進去,然后執行configure(命令: /cygdrive/c/nginx-0.6.25/configure --prefix=/cygdrive/c/nginx),得到一Makefile文件與objs子目錄下的多個文件;再執行make命令,這時cd進 去objs子目錄,然后ls一下,看到有nginx.exe文件,這就是編譯構建后生成的nginx程序,接下來就是安裝了。

            3.nginx
            安裝
               cygwin環境下cd/cygdrive/c/nginx-0.6.25目錄,執行make install命令,這樣就可以把nginx安裝到c:\nginx目錄,這個目錄是剛才執行configure時指定的(--prefix= /cygdirve/c/nginx)

            4.nginx
            運行
               cygwin環境下cd/cygdrive/c/nginx/sbin目錄,運行nginx.exe(命令:/cygdrive/c/nginx/sbin/nginx.exe),不出意外的話,應該會出現一條錯誤信息:

            2008/01/12 16:34:56 [emerg] 2496#0: the maximum number of files supported by select() is 64

            ,這表示FD_SETSIZE的值比nginx配置文件中worker_connections指令所指定的值小,那么有什么辦法解決這個問題呢?

            第一:把ngx_select_module事件處理模塊去掉,通過在執行configure時指定參數—without-select_module

            第二:修改nginx的配置文件(c:\nginx\conf\nginx.conf),把這個文件第13行的1024改為64(worker_connections指令的值)

            第三:在執行configure時指定額外的編譯選項(--with-cc-opt=-D FD_SETSIZE=2048),這同樣也可以解決上面的問題。

            后記:

            利用上面方法生成的nginx程序,需要依賴cygwin環境才能運行,那么有什么方法可以不用cygwin環境也能讓nginxWindows下獨立運行呢?當前我想到的有兩種方法:

            1種:

            首先改變執行configure時指定的—prefix=/cygdrive/c/nginx參數為—prefix=.,同時還加上—sbin-path=nginx這個參數,也就是make install時把nginx安裝到c:\nginx-0.6.25\目錄下,nginx運行時從當前目錄的conf子目錄讀取配置、寫日志到logs子目錄。接下來執行configuremakemake install

            然后把nginx運行時所需要用到的DLL找出來,我發現有這幾個:cygcrypt-0.dllcygpcre-0.dllcygwin1.dllcygz.dll(這些文件都在cygwin安裝目錄的bin子目錄下);如果啟用ssl的話,應該還需要cygssl-0.9.8.dllcygcrypto-0.9.8.dll,這個我沒有實踐過,大家可以試試。接下來把cygcrypt-0.dllcygpcre-0.dllcygwin1.dllcygz.dll拷貝到c:\nginx-0.6.25下,同時在該目錄下創建logs子目錄。

            最后就可以直接雙擊nginx.exe來運行nginx了。這時打開瀏覽器,輸入地址:http://127.0.0.1/,如果能看到有“Welcome to nginx!”顯示出來就表示nginx已經在運行,如果沒有的話就打開logs子目錄下的error.log文件,看看到底發生了什么錯誤。

            2種:

                編譯時指定-mno-cygwin選項,這可以生成不需要其它DLLnginx.exe文件,不過我還沒試成功,具體原因也還沒找到,如果你試成功了要告訴我一聲喲!

            這兩種方法都有一個缺點:雖然nginx已經能獨立運行了,但要關閉它,還需要打開cygwin環境,然后ps找到nginx主進程的進程IDkill掉它;當然也可以用任務管理器強制關閉。

                不過據我了解在cygwin環境下可以把一個程序編譯成Windows服務的,具體怎么做的話要再找找咯!

             

            posted on 2009-01-02 23:54 肥仔 閱讀(1046) 評論(0)  編輯 收藏 引用 所屬分類: 網絡編程

            国内精品综合久久久40p| 国产AV影片久久久久久| 久久久亚洲AV波多野结衣| 香港aa三级久久三级老师2021国产三级精品三级在 | 久久综合五月丁香久久激情| 欧美精品丝袜久久久中文字幕 | 99久久综合狠狠综合久久止| 97精品国产97久久久久久免费| 久久激情亚洲精品无码?V| 久久久久久久女国产乱让韩| 久久精品国产一区| 久久综合亚洲色HEZYO社区| 国产亚洲欧美成人久久片| 18禁黄久久久AAA片| 大香网伊人久久综合网2020| 久久久精品国产免大香伊| 99久久无码一区人妻| 色欲久久久天天天综合网| 久久成人永久免费播放| 久久99热只有频精品8| 久久久久99这里有精品10| 青青国产成人久久91网| 性高湖久久久久久久久| 无码任你躁久久久久久老妇App| 99久久婷婷国产综合精品草原| 狠狠88综合久久久久综合网| 久久精品综合网| 亚洲国产成人久久一区久久| 26uuu久久五月天| 久久狠狠色狠狠色综合| 久久精品麻豆日日躁夜夜躁| 色婷婷综合久久久中文字幕| 久久无码中文字幕东京热| 久久久精品国产| 亚洲欧美国产精品专区久久| 久久精品国产精品亚洲| 国产精品免费久久久久电影网| 久久久久久久尹人综合网亚洲| AV无码久久久久不卡网站下载 | 国产99久久精品一区二区| 少妇人妻88久久中文字幕|