Nginx handler 模塊的編譯和使用

2022-03-23 15:42 更新

handler 模塊的編譯和使用

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

config 文件的編寫

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

    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"

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

編譯

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

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

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

使用

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

    location /test {
            hello_string jizhao;
            hello_counter on;
    }

當(dāng)我們?cè)L問(wèn)這個(gè)地址的時(shí)候, lynx http://127.0.0.1/test 的時(shí)候,就可以看到返回的結(jié)果。

jizhao Visited Times:1

當(dāng)然你訪問(wèn)多次,這個(gè)次數(shù)是會(huì)增加的。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)