• <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 肥仔 閱讀(1042) 評論(0)  編輯 收藏 引用 所屬分類: 網絡編程

            久久精品国产久精国产一老狼| 精品少妇人妻av无码久久| 精品国产婷婷久久久| 性做久久久久久久久浪潮| 99久久无色码中文字幕| 亚洲国产成人精品91久久久| 久久精品国产91久久综合麻豆自制 | 一本久久综合亚洲鲁鲁五月天| 国内精品九九久久久精品| 国产亚洲精久久久久久无码AV| 久久99国产精品久久99小说| 九九久久精品国产| 久久久久久精品免费免费自慰| 久久久久四虎国产精品| 青青草原综合久久| 久久人人爽人人爽人人AV东京热 | 久久国产精品久久| 国产成人综合久久精品红| 91精品无码久久久久久五月天| 久久综合香蕉国产蜜臀AV| 婷婷久久综合九色综合九七| 热久久国产精品| 潮喷大喷水系列无码久久精品| 中文字幕久久精品 | 久久精品国产99国产电影网 | 久久香综合精品久久伊人| 日本精品久久久中文字幕| 国产成人久久精品一区二区三区| 国产一区二区久久久| 欧美久久一区二区三区| 久久福利片| 国产99久久久国产精免费| 久久久久亚洲AV成人网| 99久久婷婷免费国产综合精品| 亚洲精品乱码久久久久久自慰| 俺来也俺去啦久久综合网| 国产精品久久久久久久| 久久精品国产亚洲AV麻豆网站| 精品国产热久久久福利| 久久青青草原精品国产不卡| 一本大道久久香蕉成人网|