1.官网下载nginx源码包(nginx-1.20.0.tar.gz)

新建nginx安装目录

mkdir -p /opt/nginx

新增nginx运行用户

useradd -s /sbin/nologin -M nginx

2.安装依赖

yum -y install wget unzip gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool

3.安装lua相关包(waf配置需要)

下载luajit 2.0并安装

wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz

tar -xf tar -zxvf LuaJIT-2.0.5.tar.gz

cd LuaJIT-2.0.5

make && make install

安装ngx_devel_kit(nginx development kit)模块是一个拓展nginx服务器核心功能的模块,第三方模块开发可以基于它来快速实现。

wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.0.tar.gz

tar -xf ngx_devel_kit-0.3.0.tar.gz #nginx编译安装时需要此模块

安装nginx_lua_module

tar -xf lua-nginx-module-0.10.13.tar.gz #nginx编译安装时需要此模块

4.导入环境变量:

echo "export LUAJIT_LIB=/usr/local/lib" >> /etc/profile
echo "export LUAJIT_INC=/usr/local/include/luajit-2.0" >> /etc/profile
source /etc/profile

5.nginx编译安装

tar -zxvf nginx-1.20.0.tar.gz

cd nginx-1.20.0

./configure --prefix=/opt/nginx --user=nginx --group=nginx --add-module=/root/ngx_devel_kit-0.3.0 --add-module=/root/lua-nginx-module-0.10.13 --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB"

make && make install

cd ../

chown -R nginx:nginx nginx

新建/opt/nginx/logs/hack/攻击日志目录,并赋予nginx用户对该目录的写入权限。

mkdir -p /opt/nginx/logs/hack/

chown -R nginx.nginx /opt/nginx/logs/hack/

chmod -R 755 /opt/nginx/logs/hack/

6.下载安装waf

wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip

unzip master.zip -d /opt/nginx/conf/

cd /opt/nginx/conf/

mv ngx_lua_waf-master waf

chown -R nginx:nginx waf/

7.nginx配置如下

lua_package_path "/opt/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /opt/nginx/conf/waf/init.lua;
access_by_lua_file /opt/nginx/conf/waf/waf.lua;

配置config.lua里的waf规则目录(一般在waf/conf/目录下):

cd /opt/nginx/conf/waf/conf

vim config.lua

8.启动nginx服务完成配置

 

最新文章

  1. Swift笔记
  2. 使用reuseport和recvmmsg优化UDP服务器
  3. 每一个web开发者都应该了解的HTTP/2
  4. KEIL 伪指令
  5. (二)Activity启动模式
  6. bash基础知识
  7. Dynamics CRM 同一实体多个Form显示不同的Ribbon按钮
  8. 2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析
  9. 数以亿计运行PHP的网站即将面临严重的安全风险
  10. Zookeeper三个监听案例
  11. linux监控文件夹内的文件数量
  12. C# 全屏坐标及区域坐标获取。自定义光标及系统光标描边捕捉显示。
  13. 滑动拼图 Sliding Puzzle
  14. xampp 忘记密码的处理方式.
  15. python数据分析之matplotlib学习
  16. Linux查看运行时间
  17. [转载]ASP.NET Error – Adding the specified count to the semaphore would cause it to exceed its maximum count
  18. MDK 的编译过程及文件类型全解
  19. NYOJ 116 士兵杀敌 (线段树,区间和)
  20. Linux火焰图-ubuntu

热门文章

  1. vmware workstation linux虚拟机点击suspend会卡死
  2. ASIC设计-终极指南
  3. Nucleus 实时操作系统中断(上)
  4. 解决servlet响应乱码问题
  5. (1)http基础
  6. javascript中的设计模式
  7. 【模拟8.01】big(trie树)
  8. 机械革命z2安装ubuntu20
  9. 使用 TypeScript,React,ANTLR 和 Monaco Editor 创建一个自定义 Web 编辑器(二)
  10. Blazor Server 和 WebAssembly 应用程序入门指南