1. 程式人生 > >重新編譯Nginx指導手冊【修復靜態編譯Openssl的Nginx漏洞 】[Openssl Heartbleed]

重新編譯Nginx指導手冊【修復靜態編譯Openssl的Nginx漏洞 】[Openssl Heartbleed]

        Nginx的下載地址: http://nginx.org/en/download.html

   3.2 下載相關Nginx的第三方外掛

        輸入以下命令,檢視Nginx編譯了哪些外掛模組:       
# ./sbin/nginx -V
       輸出的編譯引數裡面包含了編譯模組,如下:
nginx version: nginx/1.4.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/opt/app/nginx --with-http_ssl_module --with-openssl=/opt/app/openssl-1.0.1e --add-module=/opt/app/ngx_cache_purge-2.1
     編譯選項--add-module就是Nginx所編譯的外掛模組。先把所有外掛模組記錄下來,比如上面的伺服器就有隻有一個外掛cache_purge,然後從以下網址中下載相關外掛原始碼:     
Nginx 第三方外掛下載網址: http://wiki.nginx.org/3rdPartyModules

    3.3 自定義外掛

       如果是咱公司自己開發的Nginx外掛,請務必找到相應的同事,確認是否相容當前的Nginx版本。此外,非官網提供的第三方外掛也需要經過測試,是否能夠相容當前Nginx版本。

    3.4 編譯引數

        在2小節中,將編譯引數記錄下來,比如上面的--prefix=/opt/app/nginx --with-http_ssl_module ... 等等,記錄下來,編譯的時候儘量保持一致,這樣才能儘可能保持Nginx的特性不變。

    3.5 下載Openssl的原始碼

        從Openssl的官網下載最新的原始碼,建議使用最新的額1.0.1g版本,下載頁面:
       
下載頁面:http://www.openssl.org/source/
下載地址: http://www.openssl.org/source/openssl-1.0.1g.tar.gz
    

    3.6 編譯安裝

        在編譯安裝之前,請將原來的./sbin/Nginx 備份一下,以防萬一。所有原始碼準備完之後,就開始編譯安裝:        
#./configure <編譯引數> <第三方外掛>
# make & make install 
        編譯完成之後,重啟Nginx,然後測試無誤後,然後再對其他相同配置環境的機器直接替換即可,注意,不同環境伺服器是不能直接替換的,比如Redhat5.x上的Nginx就不能複製到Redhat6.x上了。