nginx过滤post请求头_Nginx:HTTP过滤模块

参考资料HTTP过滤模块也是一种HTTP模块,与普通HTTP处理模块不同在于:1.一个请求仅由一个HTTP处理模块处理,而可以被任意个HTTP过滤模块处理2.普通的HTTP模块倾向于完成请求的核心功能,而HTTP过滤模块所做的工作是对发送给用户的HTTP响应包做一些加工HTTP过滤模块的简单例子该过滤模块实现的功能是:用户的请求由static静态文件模块进行处理,根据URI返回磁盘中的文件给用户,...
摘要由CSDN通过智能技术生成

参考资料

HTTP过滤模块也是一种HTTP模块,与普通HTTP处理模块不同在于:

1.一个请求仅由一个HTTP处理模块处理,而可以被任意个HTTP过滤模块处理

2.普通的HTTP模块倾向于完成请求的核心功能,而HTTP过滤模块所做的工作是对发送给用户的HTTP响应包做一些加工

HTTP过滤模块的简单例子

该过滤模块实现的功能是:用户的请求由static静态文件模块进行处理,根据URI返回磁盘中的文件给用户,然后该过滤模块就会在返回给用户的相应包体前添加一段字符串:"[my filter prefix]"

static静态文件模块处理完成后会调用ngx_http_send_header跟ngx_http_output_filter来调用过滤模块

1.编写config文件

跟普通HTTP模块不同的是HTTP_MODULES变量要改为HTTP_FILTER_MODULES

ngx_addon_name=ngx_http_myfilter_module

HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES ngx_http_myfilter_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_myfilter_module.c"

2.配置项与上下文

该过滤模块希望在nginx.conf中由一个控制当前HTTP过滤模块是否生效的配置项,它的参数值是on或者off。首先建立如下结构来存储配置项

typedef struct{

ngx_flag_t enable;

} ngx_http_myfilter_conf_t;

下面实现的ngx_http_myfilter_create_conf用于为存储配置项的结构体分配内存

static void *ngx_http_myfilter_create_conf(ngx_conf_t *cf)

{

ngx_http_myfilter_conf_t*mycf;

mycf=(ngx_http_myfilter_conf_t *)ngx_pcalloc(cf->pool,sizeof(ngx_http_myfilter_conf_t));if(mycf==NULL){returnNULL;

}

mycf->enabl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值