openresty

homestead中nginx替换为openresty

倖福魔咒の 提交于 2019-11-26 14:49:51
1. 下载包(版本自行挑选) wget https://openresty.org/download/openresty-1.11.2.2.tar.gz tar -xzvf openresty-1.11.2.2.tar.gz cd openresty-1.11.2.2 2. 查看 nginx 编译选项: nginx -V nginx version: nginx/1.10.3 (省略) 3. 配置 openresty 的编译选项: ./configure --prefix=/usr/share/openresty --with-luajit --without-http_redis2_module --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-mcUg8N/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='

使用Nginx+Openresty实现WAF功能

蓝咒 提交于 2019-11-26 13:54:30
什么是WAF Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 实现WAF 两种方式 使用nginx+lua来实现WAF,须在编译nginx的时候配置上lua 部署OpenResty,不需要在编译nginx的时候指定lua 功能列表 支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。 支持URL白名单,将不需要过滤的URL进行定义。 支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。 支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。 支持URL参数过滤,原理同上。 支持日志记录,将所有拒绝的操作,记录到日志中去。 日志记录为JSON格式,便于日志分析,例如使用ELKStack进行攻击日志收集、存储、搜索和展示 具体操作 采用第二种方式实现WAF较为方便 以下操作的前提是:Centos 7.2 系统 部署OpenResty # 安装依赖包 yum

WAF嵌入LNMP集群架构

半城伤御伤魂 提交于 2019-11-26 01:47:53
前言: 之前想着每天都更新一篇文章,但是连续几天之后,发现有好多博客大佬,所以觉得还是不要献丑好一点,然后就学习一下关于安全防护的知识,毕竟安全意识强弱代表在互联网防护能力,类似ddos,xss,csrf等也是经常出现,比如一些基本的×××方式:SQL注入,web参数,cc。所以我就记录了下面全程的将WAF嵌入LNMP架构,应用于实战集群架构。附带lua语言写的防护模块。 实战: 服务器架构图如下: 一、web服务器集群高可用负载均衡 1.高可用使用:nginx+keepalived模式 master(web1) 192.168.0.230 slaver(web2) 192.168.0.211 VIP:192.168.0.100 2.两边安装keepalived [root@web1 ~]# yum install -y keepalived 3.创建服务器监控脚本 [root@web1 ~]# mkdir -p /server/work [root@web1 ~]# cd /server/work/ [root@web1 work]# vim check_ng.sh #!/bin/bash #write by leo d=`date --date today +%Y%m%d_%H:%M:%S` n=`ps -C nginx --no-heading|wc -l` #如果进程为0

OpenResty--------核心执行阶段篇

£可爱£侵袭症+ 提交于 2019-11-25 21:36:41
前言 前两篇分别介绍了OpenResty核心概念和,优势与架构等信息,进行本篇之前建议至少观看一遍。 OpenResty--------企业级理论实践篇 OpenResty--------企业级入门实践篇 背景 之前篇章介绍了OpenResty是基于Nginx为基础核心的开发平台, 本篇将继续介绍基础平台(Nginx)的主要特性。 特性 执行阶段 OpenResty将应用分为4个大阶段,11个小阶段,如下图所示。 初始化阶段: master进程启动预加载/生成worker进程预加载 转发/访问阶段:url转发,权限判断 内容处理/生成阶段: 内容生成 日志阶段: 日志记录 开发中常用的7阶段 set_by_lua*: 流程分支处理判断变量初始化 rewrite_by_lua*: 转发、重定向、缓存等功能(例如特定请求代理到外网) access_by_lua*: IP 准入、接口权限等情况集中处理(例如配合 iptable 完成简单防火墙) content_by_lua*: 内容生成 header_filter_by_lua*: 响应头部过滤处理(例如添加头部信息) body_filter_by_lua*: 响应体过滤处理(例如完成应答内容统一成大写) log_by_lua*: 会话完成后本地异步完成日志记录(日志可以记录在本地,还可以同步到其他机器) 测试[常用的7阶段] 环境

Orange--------基于nginx/openresty之API网关(Gateway)实战

余生长醉 提交于 2019-11-25 20:41:17
Orange 简介 Orange是一个基于OpenResty的API网关。除Nginx的基本功能外,它还可用于API监控、访问控制(鉴权、WAF)、流量筛选、访问限速、AB测试、动态分流等。它有以下特性: 提供了一套默认的 Dashboard 用于动态管理各种功能和配置 提供了API接口用于实现第三方服务(如个性化运维需求、第三方Dashboard等) 可根据规范编写自定义插件扩展Orange功能 Orange 实战 环境 [root@orange ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@orange ~]# uname -a Linux orange 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@orange ~]# iptables -F [root@orange ~]# ip addr [root@orange orange]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00

OpenResty的现状、趋势、使用及学习方法

流过昼夜 提交于 2019-11-25 20:19:58
温铭,奇虎 360 企业安全服务端架构师,OpenResty 社区咨询委员会成员。一直在互联网安全公司从事服务端的开发和架构工作,致力于用互联网技术帮助企业提高安全防护。曾负责开发过***云查杀和反钓鱼系统。 OpenResty 是什么,适合什么场景下使用 和大部分知名开源软件诞生在欧美国家不同,OpenResty 自身和依赖的主要组件都是金砖国家的开发者发明的,这点还挺有意思。 Nginx 是俄罗斯人发明的, Lua 是巴西几个教授发明的,中国人章亦春把 LuaJIT VM 嵌入到 Nginx 中,实现了 OpenResty 这个高性能服务端解决方案。 通过 OpenResty,你可以把 nginx 的各种功能进行自由拼接, 更重要的是,开发门槛并不高,这一切都是用强大轻巧的 Lua 语言来操控。 它主要的使用场景主要是: 在 Lua 中揉和和处理各种不同的 nginx 上游输出(Proxy,Postgres,Redis,Memcached 等) 在请求真正到达上游服务之前,Lua 可以随心所欲的做复杂的访问控制和安全检测 随心所欲的操控响应头里面的信息 从外部存储服务(比如 Redis,Memcached,MySQL,Postgres)中获取后端信息,并用这些信息来实时选择哪一个后端来完成业务访问 在内容 handler 中随意编写复杂的 Web 应用,使用 同步但依然非阻塞

openresty如何完美替换nginx

微笑、不失礼 提交于 2019-11-25 16:48:48
下载openresty wget https://openresty.org/download/openresty-1.15.8.1.tar.gz tar zxvf openresty-1.15.8.1.tar.gz cd openresty-1.15.8.1 安装openresty 查看当前nginx的编译配置 nginx -V 如下所示,"configure arguments"就是编译nginx时的配置 nginx version: nginx/1.14.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --with-http_ssl_module 编译openresty,把刚才的配置加到"configure"命令后方,如果需要使用lua也可以加上"--with-luajit" ./configure --with-http_ssl_module --with-luajit gmake && gmake install gmake即GNU make,使用它的原因是非GNU平台可能占用了make命令,在linux系统下不用考虑这个问题。GNU