在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
当我们使用的是购买的云服务器时,上面有时会自带Nginx服务,或者项目中我们为图方便,使用yum安装Nginx服务,使用起来快捷方便。当我们需要为Nginx新增模块时,就遇到了麻烦,以笔者遇到的问题为例- 本人使用的是云服务器,上面有yum安装好的Nginx-1.12.2,当前的项目需要防止CC攻击,遂决定为Nginx添加ngx_lua_waf防护,添加此防护需要为Nginx添加lua模块,为Nginx添加模块需要重新编译Nginx,找不到configure无法编译。 解决办法: 1.查看Nginx版本及已有模块,nginx -V
2.下载解压和yum安装的Nginx同版本Nginx文件,wget http://nginx.org/download/nginx-1.12.2.tar.gz,tar xzvf nginx-1.12.2.tar.gz 3.下载需要加载的模块: 1)下载解压ngx_devel_kit,wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz,tar xzvf v0.3.0.tar.gz 2)下载解压lua-nginx-module,wget https://github.com/openresty/lua-nginx-module/archive/v0.10.11.tar.gz,tar xzvf v0.10.11.tar.gz 3)下载加压编译安装luajit,wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz,tar xzvf LuaJIT-2.0.5.tar.gz,cd LuaJIT-2.0.5/,make,make install 3-1)设置环境变量,vim /etc/profile,source /etc/profile
4.重新编译Nginx,此处需要注意,编译的时候之前Nginx所有的模块也需要写在编译命令中,不然会丢失之前的模块,编译的时候,根据第1步查到已有的模块,加上本次需新增的模块即可--add-module,注意模块所在位置根据你下载解压的位置填写,到下载解压的Nginx文件下:
1),编译过程中可能会报错缺少依赖,根据报错依次添加相应依赖即可: 1-1),错误:./configure: error: the invalid value in --with-ld-opt="-Wl,-rpath,/usr/local/lib",解决:yum -y install redhat-rpm-config.noarch 1-2),错误:./configure: error: the HTTP rewrite module requires the PCRE library,解决: yum -y install pcre pcre-devel 1-3),错误:./configure: error: SSL modules require the OpenSSL library,解决:yum -y install openssl openssl-devel 1-4),错误:./configure: error: the HTTP XSLT module requires the libxml2/libxslt,解决:yum -y install libxml2 libxml2-dev libxslt-devel 1-5),错误:./configure: error: the HTTP image filter module requires the GD library,解决:yum -y install gd-devel 1-6),错误:./configure: error: perl module ExtUtils::Embed is required,解决:yum -y install perl-devel perl-ExtUtils-Embed 1-7),错误:./configure: error: the GeoIP module requires the GeoIP library,解决:yum -y install GeoIP GeoIP-devel GeoIP-data 1-8),错误:./configure: error: the Google perftools module requires the Google perftools,解决:yum install gperftools-devel 2)编译完成接着执行make,注意不要make完不要make install。编译完成后回再当前Nginx目录下objs文件下出现nginx可执行文件。 5.替换Nginx可执行文件,可以先保存一份之前,防止错误无法恢复。mv /usr/sbin/nginx /usr/sbin/nginx.bak,cp objs/nginx /usr/sbin/,此时新模块就加载完了。 6.下载ngx_lua_waf,配置Nginxwaf防护相关,wget https://github.com/loveshell/ngx_lua_waf/archive/v0.7.2.tar.gz,tar xzvf v0.7.2.tar.gz,mv ngx_lua_waf-0.7.2/ waf, vim waf/config.lua编辑防护配置。 --规则存放目录 7.在nginx.conf的http字段内添加以下内容,启动Nginx,即开启防护. lua_package_path "/etc/nginx/waf/?.lua"; 8.service nginx start
本文参考文章:https://yq.aliyun.com/articles/561967?spm=a2c41.11181499.0.0
|
请发表评论