Nginx總算支持動態模塊了

artType02.jpg Nginx總算支持動態模塊了html

2017-05-10 17:44:34nginx

標籤:nginx 動態編譯ide

Nginx做者Igor一直是很執拗的不用動態模塊,沒想到最終仍是妥協了,不過如今Nginx已是公司了,可能考慮的比較全面、比較商業,Tengine我記得很早就支持了,仍是易用性比較重要一些。測試

  最近發佈的Nginx 1.9.11版本帶來一個重要的新功能:動態模塊,給咱們之後如何使用Nginx帶來了巨大的影響。經過動態模塊,你能夠在運行時有有選擇性的加載第三方或Nginx官方模塊。新的實現方式經過API模塊保持儘量的向後兼容。spa

  下一個版本的Nginx Plus(Nginx Plus R9)將基於動態模塊新特性進行構建。咱們計劃建立一個模塊倉庫,收集那些已經在Nginx Plus上經過測試和認證的第三方模塊,使添加經常使用的擴展更加方便更加放心。若是你但願將你的開源模塊或者商業模塊在咱們的模塊倉庫中,請經過連接與咱們的銷售聯繫。操作系統

  在此以前,若是要給Nginx增長一個模塊,須要將模塊與源代碼一塊兒編譯進Nginx二進制文件,並且無論你是否願意,每次打開Nginx都會加載此模塊。如此以來就很難在操做系統發行版的包中爲每一個用戶建立自定義的Nginx二進制文件。3d

  傳統方式htm

  

  在動態模塊的初版中,你仍然須要和Nginx二進制文件一塊兒編譯可選模塊,可是會爲每個動態加載模塊建立一個獨立的共享對象,經過Nginx配置文件中的命令來啓用和禁用在運行時加載共享對象。對象

  動態模塊blog

  

  動態加載Nginx模塊

  在動態模塊初版中支持如下Nginx模塊、模塊包的動態構建:

  GeoIP(ngx_http_geoip_module)

  Image-Filter (ngx_http_p_w_picpath_filter_module)

  Mail (包含全部的郵件相關模塊: ngxmail{core, auth, imap, pop3, proxy, smtp}_module)

  Stream (包含全部的Stream相關模塊: ngxstream{core, access, limit_conn, proxy, ssl, upstream}_module)

  XSLT (ngx_http_xslt_module)

  能夠經過在標準的—with參數後追加=dynamic來生成動態可加載的共享對象,以下所示:

  ./configure --with-http_geoip_module=dynamic \

  --with-http_p_w_picpath_filter_module=dynamic \

  --with-mail=dynamic \

  --with-stream=dynamic \

  --with-http_xslt_module=dynamic

  當你編譯安裝Nginx 1.9.11時,會建立一個modules的子目錄,用來存放動態加載模塊共享對象的二進制文件,默認的路徑爲/usr/local/nginx/modules.

  要在運行時加載模塊,在全局配置中使用load_module命令,指定動態模塊共享文件的路徑,並以引號括起來。當從新加載配置或重啓Nginx的時候,模塊就會被載入。路徑能夠是相對路徑(本例中),也能夠是完整路徑。

  load_module "modules/ngx_http_geoip_module.so";

  load_module "modules/ngx_stream_module.so";

  要在運行時動態的「卸載」一個模塊,能夠註釋或刪掉相對應的load_module命令,並從新加載Nginx配置。若是有其餘跟這個模塊相關的命令,也請確保註釋或者刪除掉。

  轉換第三方模塊

  對於大多數的傳統模塊的開發者來講,轉化爲動態加載只須要不多的工做,大多數狀況下只須要修改一下源碼的配置文件,部分模塊可能須要稍微多一些的工做。Nginx 的Wiki中有模塊轉換指南和模塊源配置文件格式的詳細信息。

  要編譯一個已經轉換完成的第三方模塊爲動態模塊,可經過新的--add-dynamic-module參數並指定模塊的路徑:

  ./configure --add-dynamic-module=/path/to/module/source

  和Nginx模塊相同,動態模塊的共享文件將會被安裝到modules子目錄中,你能夠經過load_module命令來調用這個模塊。

  咱們的開發者關係團隊能夠協助轉換模塊,請經過Nginx開發者郵件列表與咱們聯繫。

  動態模塊展望

  在將來的版本中,咱們計劃在已編譯完成的Nginx二進制文件中增長模塊,咱們也正在編寫API模塊的文檔,當編寫完成後將能夠經過Nginx Wiki中免費查看。

  來吧,開始嘗試動態模塊吧。

  下載Nginx1.9.11(http://nginx.org/en/download.html)

本文出自http://mt.sohu.com/20160217/n437589645.shtml

相關文章
相關標籤/搜索