- 作者:邹祁峰
- 邮箱:Qifeng.zou.job@hotmail.com
- 博客:http://blog.csdn.net/qifengzou
- 日期:2014.05.26 16:45
- 转载请注明来自"祁峰"的CSDN博客
1 需求
要求在浏览器地址栏中输入"localhost/login?user=qifeng&passwd=123456",并在浏览器上显示验证结果(成功 或 失败)。以下是在NGINX中添加一个LOGIN模块的整个处理过程。
2 修改配置
根据需求修改配置文件nginx.conf,在http{...}的server{...}中增加location配置信息:
图1 修改配置
(注意:将passwd的值"abcd"改为“123456”)
3 编写代码
3.1 创建源码目录
在NGINX源码目录src下新建ext文件夹,src/ext用于存放所有扩展模块代码,src/ext/login则用于存放LOGIN模块的代码.
#mkdir -p src/ext/login
#cd src/ext/login
#vim ngx_http_login_module.c
3.2 定义配置结构
LOGIN模块主要实现的是对用户(user)和密码(password)的验证,因此,配置信息结构中需要包含user字段和password字段,故其结构定义如下:(命名规则:ngx_http_模块名_(main|srv|loc)conf_t)
/* 配置项结构体:用于存放配置项和对应值 */
typedef struct
{
ngx_str_t user;
ngx_str_t passwd;
}ngx_http_login_loc_conf_t;
代码1 定义配置结构