成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【Nginx模塊編寫】編寫第一個Nginx模塊

Panda / 856人閱讀

摘要:運營研發(fā)團隊季偉濱模塊名建立模塊源碼目錄新建文件,寫入如下配置新建配置殺死舊的進程啟動新編譯的帶有插件的驗證自己寫的插件

運營研發(fā)團隊 季偉濱

模塊名:ngx_http_jiweibin_module 1、建立模塊源碼目錄

mkdir /data/code/c/nginx-1.6.2/src/plugin

2、新建config文件

vim /data/code/c/nginx-1.6.2/src/plugin/config,寫入如下配置:

ngx_addon_name=ngx_http_jiweibin_module
HTTP_MODULES="$HTTP_MODULES ngx_http_jiweibin_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_jiweibin_module.c"
3、新建ngx_http_jiweibin_module.c
#include 
#include 
#include 
 
static char *ngx_http_jiweibin_cmd_set(ngx_conf_t *cf,ngx_command_t *cmd,void *conf);
static ngx_int_t ngx_http_jiweibin_handler(ngx_http_request_t *r);
 
static ngx_command_t ngx_http_jiweibin_commands[] = {
    {
        ngx_string("jiweibin"),
        NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LMT_CONF|NGX_CONF_NOARGS,
        ngx_http_jiweibin_cmd_set,
        NGX_HTTP_LOC_CONF_OFFSET,
        0,
        NULL
    },
    ngx_null_command   
};
 
static char * ngx_http_jiweibin_cmd_set(ngx_conf_t *cf,ngx_command_t *cmd,void *conf){
    ngx_http_core_loc_conf_t *clcf;
         
    clcf = ngx_http_conf_get_module_loc_conf(cf,ngx_http_core_module);
    clcf->handler = ngx_http_jiweibin_handler;
    return NGX_CONF_OK;
}
static ngx_http_module_t ngx_http_jiweibin_module_ctx = {
    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
}; 
 
ngx_module_t ngx_http_jiweibin_module = {
    NGX_MODULE_V1,
    &ngx_http_jiweibin_module_ctx,
    ngx_http_jiweibin_commands,
    NGX_HTTP_MODULE,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NGX_MODULE_V1_PADDING
};
static ngx_int_t ngx_http_jiweibin_handler(ngx_http_request_t *r){
    if(!(r->method & (NGX_HTTP_GET|NGX_HTTP_POST))){
        return NGX_HTTP_NOT_ALLOWED;
    }  
    ngx_int_t rc = ngx_http_discard_request_body(r);
    if(rc != NGX_OK){
        return rc;
    }
    ngx_str_t content_type = ngx_string("text/plain");
    ngx_str_t response = ngx_string("hello world");
    r->headers_out.status = NGX_HTTP_OK;
    r->headers_out.content_length_n = response.len;
    r->headers_out.content_type = content_type;
    rc = ngx_http_send_header(r);
    if(rc == NGX_ERROR || rc > NGX_OK){
        return rc;
    }  
    ngx_buf_t *b;
    b = ngx_create_temp_buf(r->pool,response.len);
    if(b == NULL){
        return NGX_HTTP_INTERNAL_SERVER_ERROR;
    }
    ngx_memcpy(b->pos,response.data,response.len);
    b->last = b->pos + response.len;
    b->last_buf = 1;
    ngx_chain_t out;
    out.buf = b;
    out.next = NULL;
    return ngx_http_output_filter(r,&out);
}
4、configure
cd /data/code/c/nginx-1.6.2

./configure --prefix=/home/xiaoju/nginx-jiweibin --add-module=/data/code/c/nginx-1.6.2/src/plugin/
5、make & make install

6、配置nginx

7、殺死舊的nginx進程

8、啟動新編譯的帶有插件的nginx

/home/xiaoju/nginx-jiweibin/sbin/nginx -c /home/xiaoju/nginx-jiweibin/conf/nginx.conf

9、驗證自己寫的插件

http://10.179.195.72:8080/hello

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40151.html

相關(guān)文章

  • 不再依靠巧合編寫 Nginx 配置

    摘要:找到這個模塊的指令后,則會調(diào)用這個指令的解析回調(diào)函數(shù)即結(jié)構(gòu)體的第三個參數(shù)來進行處理。調(diào)用他們上面提到的中的回調(diào)函數(shù)來申請和初始化對應(yīng)模塊的配置結(jié)構(gòu)體。需要注意的是,即時當前是直接在塊級別,這三個回調(diào)函數(shù)都會被調(diào)用。拒絕暴力枚舉式編寫配置文件 原博:https://blog.coordinate35.cn/... 熱身 首先來看下這幾個小例子: 第一個例子: server { l...

    tulayang 評論0 收藏0
  • lapis入門

    摘要:入門是為和編寫的框架。使用來安裝創(chuàng)建一個應(yīng)用命令行工具附帶了一個命令行工具,可幫助您創(chuàng)建新項目和啟動服務(wù)器。在生產(chǎn)環(huán)境中,應(yīng)當啟用緩存以獲得最佳性能。指令指定一個代碼塊,它將處理與其他不匹配的任何請求。將忽略常規(guī)的二進制文件。 lapis入門 Lapis 是為 Lua 和 MoonScript 編寫的 Web 框架。 Lapis 很有趣,因為它建立在Nginx 發(fā)行的 OpenRest...

    endless_road 評論0 收藏0
  • 實戰(zhàn)開發(fā)一個Nginx擴展 (Nginx Module)

    摘要:實戰(zhàn)開發(fā)一個擴展地址使用指令輸出一個字符串版本開發(fā)環(huán)境安裝一個干凈的下載并且解壓它安裝和需要的運行定義模塊配置結(jié)構(gòu)該結(jié)構(gòu)體定義在這里定義模塊的指令和參數(shù)轉(zhuǎn)化函數(shù)定義模塊定義類型的結(jié)構(gòu)體變量初始化一個配置結(jié)構(gòu)體將其父的配置信息合并到此結(jié)構(gòu) 實戰(zhàn)開發(fā)一個Nginx擴展 (Nginx Module) repo地址 https://github.com/wujunze/ng... nginx...

    lixiang 評論0 收藏0
  • 對比apache與nginx

    摘要:大型網(wǎng)站建議用自代的集群功能從個人過往的使用情況來看,的負載能力比高很多。最新的服務(wù)器也改用了。你對的需求決定你的選擇。在模式下,如果處理慢或者前端壓力很大的情況下,很容易出現(xiàn)進程數(shù)飆升,從而拒絕服務(wù)的現(xiàn)象。 1、nginx相對于apache的優(yōu)點: 輕量級,同樣起web 服務(wù),比apache占用更少的內(nèi)存及資源 抗并發(fā),nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的...

    tyheist 評論0 收藏0
  • 對比apache與nginx

    摘要:大型網(wǎng)站建議用自代的集群功能從個人過往的使用情況來看,的負載能力比高很多。最新的服務(wù)器也改用了。你對的需求決定你的選擇。在模式下,如果處理慢或者前端壓力很大的情況下,很容易出現(xiàn)進程數(shù)飆升,從而拒絕服務(wù)的現(xiàn)象。 1、nginx相對于apache的優(yōu)點: 輕量級,同樣起web 服務(wù),比apache占用更少的內(nèi)存及資源 抗并發(fā),nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的...

    anRui 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<