成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

【Nginx模塊編寫(xiě)】編寫(xiě)第一個(gè)Nginx模塊

Panda / 910人閱讀

摘要:運(yùn)營(yíng)研發(fā)團(tuán)隊(duì)季偉濱模塊名建立模塊源碼目錄新建文件,寫(xiě)入如下配置新建配置殺死舊的進(jìn)程啟動(dòng)新編譯的帶有插件的驗(yàn)證自己寫(xiě)的插件

運(yùn)營(yíng)研發(fā)團(tuán)隊(duì) 季偉濱

模塊名: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,寫(xiě)入如下配置:

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進(jìn)程

8、啟動(dòng)新編譯的帶有插件的nginx

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

9、驗(yàn)證自己寫(xiě)的插件

http://10.179.195.72:8080/hello

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/40151.html

相關(guān)文章

  • 不再依靠巧合編寫(xiě) Nginx 配置

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

    tulayang 評(píng)論0 收藏0
  • lapis入門(mén)

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

    endless_road 評(píng)論0 收藏0
  • 實(shí)戰(zhàn)開(kāi)發(fā)一個(gè)Nginx擴(kuò)展 (Nginx Module)

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

    lixiang 評(píng)論0 收藏0
  • 對(duì)比apache與nginx

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

    tyheist 評(píng)論0 收藏0
  • 對(duì)比apache與nginx

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

    anRui 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<