请选择 进入手机版 | 继续访问电脑版

nginx 1.12或者1.14自编译web防护教程,直接傻瓜式复制执行

[复制链接]
查看551 | 回复0 | 2019-9-25 12:03:20 | 显示全部楼层 |阅读模式
nginx 1.12或者1.14自编译web防护教程,直接傻瓜式复制执行

nginx防护编译详细教程(本教程nginx安装自宝塔面板,版本号为1.14,大部分代码可直接复制#)
宝塔面板使用nginx安装云锁开启web防护后网站打不开是因为需要对nginx进行自编译,加入云锁防护模式,以代替web防护。web防护功能与nginx自编译后功能一样。
教程正文:(#为执行代码)

1.编译前先在云锁PC客户端关闭操作系统加固功能;然后将已经安装的Nginx文件进行备份,通过ps命令查看nginx文件的路径。以下所有步骤都以自身nginx路径为准。
# ps -elf | grep nginx
640.webp.jpg

# cd /www/server/nginx/sbin/
# cp nginx nginx.bak
640.webp (1).jpg

2.下载云锁防护模块压缩包
# cd ~
640.webp (2).jpg

3.解压云锁防护模块压缩包nginx-plugin-master.zip
# unzip nginx-plugin-master.zip
640.webp (3).jpg

4.获取当前云锁模块所在目录的全路径
# cd nginx-plugin-master/
# pwd
640.webp (5).jpg

5.查看当前nginx加载的模块,在编译加载云锁防护模块的时候仍需加载这些模块
# cd ~
# /www/server/nginx/sbin/nginx -V
640.webp (4).jpg
备注:将./configure arguents:之后的内容复制到记事本备用

6.进入nginx源码目录,对nginx进行编译(宝塔面板安装的nginx源码位于/www/server/nginx/src);编译时添加云锁防护模块参数,参数路径为第4步获取的云锁防护模块源码全路径“/root/nginx-plugin-master”
备注:编译内容为(./configure  上一步记事本中的备用内容  --add-module=/root/nginx-plugin-master)
# cd /www/server/nginx/src
# ./configure 第5步中记录在记事本中的内容 --add-module=/root/nginx-plugin-master
640.webp (6).jpg

7.Nginx1.8.0 以上和 Tengine 2.1.2 则需要修改objs/Makefile文件来支持post过滤,在Makefile文件中的CFLAGS=...-Werror -g后追加宏定义 -DHIGHERTHAN8
# vi objs/Makefile
备注:按Insert后找到-Werror -g 添加 -DHIGHERTHAN8 ,添加之后按ESC:wq
640.webp (7).jpg

其次,将ngx_modules.c中的&ngx_http_yunsuo_module,向下移动到ngx_http_userid_filter_module和ngx_http_headers_filter_module之间。(已在此之间的则可忽略)

# vi objs/ngx_modules.c

ngx_module_t *ngx_modules[] = {
   &ngx_core_module,
   ......
   &ngx_http_upstream_keepalive_module,
   &ngx_http_upstream_zone_module,
-----------下面这行向下移动----------------   
   &ngx_http_yunsuo_module,
------------------------------------------     
   &ngx_http_stub_status_module,
   ......
   &ngx_http_userid_filter_module,
---------------移动到该位置-----------------  
   &ngx_http_yunsuo_module,
-------------------------------------------
   &ngx_http_headers_filter_module,
   &ngx_http_copy_filter_module,
   &ngx_http_range_body_filter_module,
   &ngx_http_not_modified_filter_module,
   NULL
};

char *ngx_module_names[] = {
   "objs/ngx_modules.c" 186L, 6441C
   ......
};

640.webp (8).jpg
8.
# make
9.make完成后将系统中原有的nginx用重新编译生成的nginx文件替换,替换后重启nginx使新编译nginx生效
# rm -rf /www/server/nginx/sbin/nginx
# cp objs/nginx /www/server/nginx/sbin/
# service nginx restart

10.到此通过PC端连接到服务器端,在PC端的界面上刷新后可以看到已识别nginx插件(由灰色变为绿色)。
640.webp (9).jpg

11.测试防护是否生效
域名+/?order%20by

640.png


回复

使用道具 举报

*滑块验证:
懒得打字嘛,点击右侧快捷回复 【推荐使用】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

<--------广告位出租-------QQ:410696382>

632

主题

695

帖子

98万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
989325