• <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)  編輯 收藏 引用 所屬分類: 網絡編程

            亚洲中文字幕无码一久久区| 四虎国产精品免费久久5151| 狠狠人妻久久久久久综合蜜桃| 国产精品99久久99久久久| 久久福利资源国产精品999| 日本WV一本一道久久香蕉| AV色综合久久天堂AV色综合在| 麻豆一区二区99久久久久| 久久国产综合精品五月天| 久久久www免费人成精品| 91久久香蕉国产熟女线看| 亚洲天堂久久久| 日日狠狠久久偷偷色综合0| 久久精品国产99国产电影网| 亚洲AV日韩AV永久无码久久| 国产69精品久久久久9999APGF| 久久久久一区二区三区| 久久这里只有精品18| 欧美午夜精品久久久久免费视| 国产AV影片久久久久久| 国产精品久久国产精麻豆99网站| 久久伊人精品一区二区三区| 91精品久久久久久无码| 久久久精品午夜免费不卡| 精品国产福利久久久| 大蕉久久伊人中文字幕| 久久精品国产一区二区电影| 狠狠精品干练久久久无码中文字幕 | 亚洲国产精品一区二区三区久久 | 久久久精品久久久久久| 国产成人久久久精品二区三区| 精品熟女少妇aⅴ免费久久| 久久无码一区二区三区少妇| 色婷婷久久久SWAG精品| 人妻无码久久精品| 久久午夜无码鲁丝片| 青青热久久国产久精品| 伊人久久精品无码av一区| 久久久久一级精品亚洲国产成人综合AV区| 久久精品无码免费不卡| 久久久精品午夜免费不卡|