摘要:運營研發團隊季偉濱模塊名建立模塊源碼目錄新建文件,寫入如下配置新建配置殺死舊的進程啟動新編譯的帶有插件的驗證自己寫的插件
運營研發團隊 季偉濱
模塊名: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
#include4、configure#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); }
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40151.html
摘要:找到這個模塊的指令后,則會調用這個指令的解析回調函數即結構體的第三個參數來進行處理。調用他們上面提到的中的回調函數來申請和初始化對應模塊的配置結構體。需要注意的是,即時當前是直接在塊級別,這三個回調函數都會被調用。拒絕暴力枚舉式編寫配置文件 原博:https://blog.coordinate35.cn/... 熱身 首先來看下這幾個小例子: 第一個例子: server { l...
摘要:入門是為和編寫的框架。使用來安裝創建一個應用命令行工具附帶了一個命令行工具,可幫助您創建新項目和啟動服務器。在生產環境中,應當啟用緩存以獲得最佳性能。指令指定一個代碼塊,它將處理與其他不匹配的任何請求。將忽略常規的二進制文件。 lapis入門 Lapis 是為 Lua 和 MoonScript 編寫的 Web 框架。 Lapis 很有趣,因為它建立在Nginx 發行的 OpenRest...
摘要:實戰開發一個擴展地址使用指令輸出一個字符串版本開發環境安裝一個干凈的下載并且解壓它安裝和需要的運行定義模塊配置結構該結構體定義在這里定義模塊的指令和參數轉化函數定義模塊定義類型的結構體變量初始化一個配置結構體將其父的配置信息合并到此結構 實戰開發一個Nginx擴展 (Nginx Module) repo地址 https://github.com/wujunze/ng... nginx...
摘要:大型網站建議用自代的集群功能從個人過往的使用情況來看,的負載能力比高很多。最新的服務器也改用了。你對的需求決定你的選擇。在模式下,如果處理慢或者前端壓力很大的情況下,很容易出現進程數飆升,從而拒絕服務的現象。 1、nginx相對于apache的優點: 輕量級,同樣起web 服務,比apache占用更少的內存及資源 抗并發,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的...
摘要:大型網站建議用自代的集群功能從個人過往的使用情況來看,的負載能力比高很多。最新的服務器也改用了。你對的需求決定你的選擇。在模式下,如果處理慢或者前端壓力很大的情況下,很容易出現進程數飆升,從而拒絕服務的現象。 1、nginx相對于apache的優點: 輕量級,同樣起web 服務,比apache占用更少的內存及資源 抗并發,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的...
閱讀 1833·2021-09-22 15:23
閱讀 3255·2021-09-04 16:45
閱讀 1842·2021-07-29 14:49
閱讀 2767·2019-08-30 15:44
閱讀 1523·2019-08-29 16:36
閱讀 1038·2019-08-29 11:03
閱讀 1504·2019-08-26 13:53
閱讀 504·2019-08-26 11:57