注意:如果你是极速安装的lnmp环境,那么是不能编译的,所以安装lnmp环境请选择编译安装。
云锁的防CC还是很不错的,比宝塔自带的waf要好很多。特别是在防CC方面,云锁相当不错。当然宝塔面板安装云锁的教程有很多,一般我们都是自编译云锁的nginx防护模块,然后开启防护。
这篇文章就来水一水宝塔面板自编译Nginx云锁防护模块,测试环境,宝塔面板7.0.3 ,nginx1.17,貌似只支持nginx版本。
安装部署:
0、Nginx文件备份
编译前先将已经安装的Nginx文件进行备份,通过ps命令查看nginx文件的路径。以下所有步骤都以自身nginx路径为准。使用如下命令查找路径。
ps -elf | grep nginx
命令执行之后,我们会得到宝塔面板nginx的具体路径:/www/server/nginx/sbin/nginx
所以,我们继续执行下面的命令:
cd /www/server/nginx/sbin/ #进入到路径 cp nginx nginx.bak #备份nginx
1、下载云锁防护模块
我们现在下载云锁防护模块,下载的路径:/www/server/nginx/src
命令如下:
cd /www/server/nginx/src wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip
2、解压
解压云锁防护模块压缩包nginx-plugin-master.zip
unzip nginx-plugin-master.zip
3、获取当前云锁模块所在目录的全路径
cd nginx-plugin-master/ pwd
具体操作结果,如图:
需要把云锁的防护模块复制好放在记事本里面。
4、查看宝塔编译好的nginx加载模块
查看宝塔编译好的nginx加载模块,在重新编译加载云锁防护模块的时候仍需加载这些模块。命令:
nginx -V #这里的V是大写
获取的模块如图:
注意:需要将./configure arguents:之后的内容复制到记事本备用。
5、开始编译
进入nginx源码目录,对nginx进行编译(宝塔面板安装的nginx源码位于/www/server/nginx/src),编译时添加云锁防护模块参数。
参数路径为第3步获取的云锁防护模块源码全路径:/www/server/nginx/src/nginx-plugin-master
编译内容为(./configure ’上一步记事本中的备用内容 /www/server/nginx/src/nginx-plugin-master
)进入src目录开始编译,命令如下:
cd /www/server/nginx/src
具体的完整添加代码,如下:
一定要在/www/server/nginx/src
这个目录下面执行编译。切记!复制进去之后开始回车开始configure。
6、修改objs/Makefile文件
Nginx1.8.0 以上和 Tengine 2.1.2 则需要修改objs/Makefile文件来支持post过滤,在Makefile文件中的CFLAGS=…-Werror -g后追加宏定义 -DHIGHERTHAN8 使用vi打开文件,命令如下:
vi objs/Makefile
具体执行,如图:
备注:按i
后找到-Werror -g 添加 -DHIGHERTHAN8 ,添加之后按ESC 输入:wq
保存退出即可。接下来我们输入命令:
make
7、nginx文件替换
make完成后将系统中原有的nginx用重新编译生成的nginx文件替换,替换后重启nginx使新编译nginx生效,具体命令如下:
rm -rf /www/server/nginx/sbin/nginx cp objs/nginx /www/server/nginx/sbin/ service nginx restart
具体执行,看图:
执行命令nginx -V
我们可以看到云锁的防护模块已经编译成功,如图:
8、PC端连接到服务器
到此通过PC端连接到服务器端,在PC端的界面上可以看到已识别nginx插件(由灰色变为绿色)。虽然是编译好了,但是如果你没有在服务器端安装云锁软件是不能连接的。
我们看到确实已经【自编译】成功。
9、测试效果
这也是官网提供的方法,在浏览器中执行:http://域名/?order%20by
10、卸载
使用nginx.bak文件替换掉自编译的nginx文件,替换后重启Nginx。以下nginx路径与上述安装路径一致,实际以自身nginx路径为准。
cd /www/server/nginx/sbin/ rm -rf nginx mv nginx.bak nginx service nginx restart
11、一些细节
如果不能连接需要在宝塔面板安全中放心云锁的5555端口,前提是你已经在服务器端安装了云锁软件。安装分为linux端和windows端:【Linux服务器端安装说明】【Windows服务器端安装说明】
连接的方式,如果就一台服务器,可以选择单机管理,具体如图:
按照要求直接输入ip即可,用户名就是root,密码就是服务器管理密码,输入之后点击登录。如果不能登录,宝塔面板→安全,放行5555端口。
参考资料:http://help.yunsuo.com.cn/guide/Nginx.html