一、哪些情况下需要自编译nginx防护插件?
web服务使用的是nginx,并且用了https(云锁不支持https防护,所以需要自编译加入防护插件)。
没用https的可以采用反向代理的方式,也可以采用自编译模式。反向代理模式就是直接开启云锁pc端-应用防护-web防护就可以了。(如下图)
(注意:使用https的一定要自编译,不然开启web防护可能会造成网站打不开)
二、nginx防护编译详细教程(本教程nginx安装自宝塔面板,版本号为1.12.2,大部分代码可直接复制)
1.编译前先将已经安装的Nginx文件进行备份,通过ps命令查看nginx文件的路径。以下所有步骤都以自身nginx路径为准。
# ps -elf | grep nginx
# cd /www/server/nginx/sbin/
# cp nginx nginx.bak
2.通过步骤1查看的路径跟-V参数查看当前Nginx版本,并下载nginx源码包。
#cd ~
# /www/server/nginx/sbin/nginx -V
# wget http://nginx.org/download/nginx-1.12.2.tar.gz
3.解压nginx源码包
# tar zxvf nginx-1.12.2.tar.gz
4.下载云锁防护模块压缩包
# cd /root/
# wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip
5.解压云锁防护模块压缩包nginx-plugin-master.zip
# unzip nginx-plugin-master.zip
6.获取当前云锁模块所在目录的全路径
# cd nginx-plugin-master/
# pwd
7.查看当前nginx加载的模块,在编译加载云锁防护模块的时候仍需加载这些模块
# cd ~
# /www/server/nginx/sbin/nginx -V
8.进入nginx源码目录,对nginx进行编译;编译时添加云锁防护模块参数,参数路径为第7步获取的云锁防护模块源码全路径“/root/nginx-plugin-master”
# cd nginx-1.12.2/
# ./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --add-module=/root/nginx-plugin-master
9.Nginx1.8.0 以上和 Tengine 2.1.2 则需要修改objs/Makefile文件来支持post过滤,在Makefile文件中的CFLAGS=…-Werror -g后追加宏定义 -DHIGHERTHAN8
# vi objs/Makefile
[size=0.85em]CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DHIGHERTHAN8
完成后进行make
# make
10.make完成后将系统中原有的nginx用重新编译生成的nginx文件替换,替换后重启nginx使新编译nginx生效
# rm -rf /www/server/nginx/sbin/nginx
# cp objs/nginx /www/server/nginx/sbin/
# service nginx restart
11.到此通过PC端连接到服务器端,在PC端的界面上刷新后可以看到已识别nginx插件(由灰色变为绿色)。
12.测试防护是否生效
域名+/?order%20by