云锁本来会自动适配nginx版本,但是有时候我们自己装的nginx更新或者装第三方模块,就需要用户自己手动编译。
如何编译?网上有很多教程其实都还可以,能准确的让你实现自编译。但是多多少少有些地方将的很模糊,就连我自己也摸索了几次。为了网络安全,不被恶意入侵,建议大家都编译上。
下面是安装云锁有没有自编译的样子。
登录你的Linux服务器
首先自行登录一下你的Linux服务器,关于如何登陆请各位自行百度。这里我就不多讲了。
编译步骤
备份Nginx
登录号服务器后,先将Nginx文件进行一个备份。通过ps命令查看nginx文件的路径。以下所有步骤都以自身nginx路径为准。
1.首先运行下面代码查看路径
ps -elf | grep nginx
2.然后进入Nginx的sbin目录(直接用下面代码进入,直接复制回车)
cd /www/server/nginx/sbin/
3.备份Nginx(复制进去回车)
cp nginx nginx.bak
下载云锁防护安装包并且解压
1.执行下面的代码进入root目录
cd /root/
2.下载云锁防护模块(直接复制下面代码执行)
wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip
3.使用下面代码解压防护模块
unzip nginx-plugin-master.zip
4.获取云锁防护模块全路径
cd nginx-plugin-master/
pwd
查看当前nginx加载的模块
首先回根目录
cd ~
然后使用下面代码加载的模块
/www/server/nginx/sbin/nginx -V
上面红框中的代码要注意了,我们需要复制下来。后面要用。
删除./configure arguents:复制后面的代码
然后进行编辑
./configure 复制的代码 --add-module=/root/nginx-plugin-master
修改编辑保存备用。(我是放在桌面TXT文件)
开始编译
进入到Nginx源码目录(宝塔面板安装的nginx源码位于/www/server/nginx/src)。
1.使用下面代码到Nginx目录(这里是默认宝塔,目录根据实际目录修改)
cd /www/server/nginx/src
注意:如果这里提示了错误,就说明你的Nginx不是编译安装的(你可能用了极速安装),这里你就需要卸除Nginx重新进行编译安装。
2.在编辑框中复制上面我们备用的代码,回车进行编译。
./configure 复制的代码 --add-module=/root/nginx-plugin-master
3.修改Nginx与Tengine,objs/Makefile文件和objs/ngx_modules.c来支持post过滤和内容过滤。
首先进入objs/Makefile修改
vi objs/Makefile
执行以上命令后,会显示文本信息,然后按键盘[ i ]键,将光标通过方向键移动到 -Werror -g后面
添加 -DHIGHERTHAN8 (如下图所示,注意两边的空格)
修改完成后,我们按键盘上的 [ Esc ] 键,退出编辑(注意,此时还没有保存),然后我们按 [ Shift ] +[ : ],左下角出现一个冒号。我们在冒号后面输入:wq。
然后回车就保存了。
接着编辑ngx_modules.c
输入命令,进入文本,也是通过上面的编辑方法进行编辑,这里我就不重复写了。
vi objs/ngx_modules.c
将 &ngx_http_yunsuo_module, 移动到 &ngx_http_userid_filter_module, 的下方。(如下图。注意:你要找到这两个东西,需要利用鼠标滑轮向下滑。)
当然有时候你出现的可能和我图不一样,你要认真看。
然后退出,退出上面也有些。自己看看。
完成后进行make
命令框输入
make
然后等待它完成。
最后
以下nginx路径与上述安装路径一致,实际以自身nginx路径为准。
rm -rf /www/server/nginx/sbin/nginx
cp objs/nginx /www/server/nginx/sbin/
service nginx restart
执行以上命令重启nginx使新编译nginx生效。
然后PC客户端就可以看到,自编译完成。