编译教程
宝塔用户请直接跳到第三步。
1、配置编译环境,宝塔面板默认已有环境,无需再安装。yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel
2、查看nginx位置ps -elf | grep nginx
3、进入宝塔nginx目录cd /www/server/nginx/sbin/
说明:如果你不是宝塔用户,或者宝塔并不是安装在/www下,请执行第二步获取实际位置。
4、备份nginxcp nginx nginx.bak
说明:备份的目的是如果自编译出现问题,可以将nginx还原为原有版本,防止业务瘫痪,如果你是宝塔面板,可以忽略这一步,因为宝塔的特性,如果编译出现问题,可以在宝塔直接重装nginx,且网站数据和配置不受影响,非宝塔用户请一定要备份,以免出现问题后无法补救。
5、进入root目录cd /root
6、下载云锁防护模块压缩包wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip
7、解压云锁防护模块压缩包unzip nginx-plugin-master.zip
8、查看宝塔编译好的nginx加载模块,在重新编译加载云锁防护模块的时候仍需加载这些模块nginx -V
注意这个命令是大写的V,如果小写v是不会显示模块的
9、将./configure arguents:之后的内容复制到记事本备用。
10、进入nginx源码目录,对nginx进行重新编译,操作之前请确认自己的nginx是编译模式安装的,而不是宝塔面板的极速安装,极速安装不存在src目录,也无法进行二次编译cd /www/server/nginx/src
说明:如果你不是宝塔用户,或者宝塔并不是安装在/www下,请执行第二步获取实际位置,然后cd 实际路径。
11、编译内容
./configure 上一步记事本中的备用内容 --add-module=/root/nginx-plugin-master
./configure和记事本复制的内容之间有个空格,后面的--add-module前面也有个空格。
例如:我的nginx编译的指令是:
等待命令结束,需要修改objs/Makefile文件和objs/ngx_modules.c来支持post过滤和内容过滤。
12、首先,在Makefile文件中的CFLAGS=...-Werror -g后追加宏定义 -DHIGHERTHAN8
CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DHIGHERTHAN8
宝塔用户可以用宝塔面板打开/www/server/nginx/src/objs/(说明:如果你的宝塔没有更改过安装路径,可以直接执行本步骤,如果你更改了宝塔安装路径或非宝塔用户,请修改正确。)找到makefile,使用宝塔编辑器进行修改,非宝塔用户或对linux命令行较为熟悉的用户可以通过vi命令使用vim修改,然后,将ngx_modules.c中的&ngx_http_yunsuo_module,向下移动到ngx_http_userid_filter_module和ngx_http_headers_filter_module之间(已在此之间的则可忽略)。
请注意:这两个文件的修改非常重要,如果没有修改,会导致云锁防护不完整,其中makefile文件的宏定义和post过滤有关,如果没有追加宏定义,无法检测post提交内容,会造成防护失效,ngx_modules.c和云锁的敏感词过滤·功能有关,如果不修改,会导致该功能失效,需要注意的是,如果nginx开启了G-ZIP,该功能一样会失效。
13、修改完成后,输入编译命令make
14、等待编译完成(根据服务器性能不同,在10分钟左右)完成后将系统中原有的nginx用重新编译生成的nginx文件替换
15、停止nginxservice nginx stop
16、删除原来的nginxrm -rf /www/server/nginx/sbin/nginx
说明:如果你的宝塔没有更改过安装路径,可以直接执行本步骤,如果你更改了宝塔安装路径或非宝塔用户,请修改为正确的路径。
17、复制新编译的nginxcp /www/server/nginx/src/objs/nginx /www/server/nginx/sbin/
说明:如果你的宝塔没有更改过安装路径,可以直接执行本步骤,如果你更改了宝塔安装路径或非宝塔用户,请修改为正确的路径。
18、启动nginxservice nginx start
通过PC端登陆云锁,PC端刷新后可以看到云锁nginx插件已经亮起(由灰色变为绿色)
19、点击nginx后方的绿色自编译图标,选择“网站漏洞防护”
20、将右上角的防护模式修改为“防护模式”
22、将开关全部修改为开启
23、输入你的网址后面加上/?order%20by,测试云锁
出现以上拦截页面即代表成功开启防护,如没有出现拦截页面,请检查云锁是否处于监控模式,修改为防护模式即可。
评论留言