Nginx handler 模塊的編譯和使用

2022-03-23 15:42 更新

handler 模塊的編譯和使用

模塊的功能開發(fā)完了之后,模塊的使用還需要編譯才能夠執(zhí)行,下面我們來看下模塊的編譯和使用。

config 文件的編寫

對于開發(fā)一個模塊,我們是需要把這個模塊的 C 代碼組織到一個目錄里,同時需要編寫一個 config 文件。這個 config 文件的內容就是告訴 Nginx 的編譯腳本,該如何進行編譯。我們來看一下 hello handler module 的 config 文件的內容,然后再做解釋。

    ngx_addon_name=ngx_http_hello_module
    HTTP_MODULES="$HTTP_MODULES ngx_http_hello_module"
    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_hello_module.c"

其實文件很簡單,幾乎不需要做什么解釋。大家一看都懂了。唯一需要說明的是,如果這個模塊的實現(xiàn)有多個源文件,那么都在 NGX_ADDON_SRCS 這個變量里,依次寫進去就可以。

編譯

對于模塊的編譯,Nginx 并不像 apache 一樣,提供了單獨的編譯工具,可以在沒有 apache 源代碼的情況下來單獨編譯一個模塊的代碼。Nginx 必須去到 Nginx 的源代碼目錄里,通過 configure 指令的參數(shù),來進行編譯。下面看一下 hello module 的 configure 指令:

./configure --prefix=/usr/local/nginx-1.3.1 --add-module=/home/jizhao/open_source/book_module

我寫的這個示例模塊的代碼和 config 文件都放在/home/jizhao/open_source/book_module這個目錄下。所以一切都很明了,也沒什么好說的了。

使用

使用一個模塊需要根據(jù)這個模塊定義的配置指令來做。比如我們這個簡單的 hello handler module 的使用就很簡單。在我的測試服務器的配置文件里,就是在 http 里面的默認的 server 里面加入如下的配置:

    location /test {
            hello_string jizhao;
            hello_counter on;
    }

當我們訪問這個地址的時候, lynx http://127.0.0.1/test 的時候,就可以看到返回的結果。

jizhao Visited Times:1

當然你訪問多次,這個次數(shù)是會增加的。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號