编程技术分享平台

网站首页 > 技术教程 正文

VeryNginx--一个友好的 Nginx 扩展程序.

xnh888 2024-10-03 04:42:42 技术教程 14 ℃ 0 评论

VeryNginx

nginx基本上每个公司都会用到的负载均衡软件。今天介绍一个nginx的扩展工具,可以帮助我们更直观的看到nginx的运行情况。

VeryNginx 是一个功能强大而对人类友好的 Nginx 扩展程序.

开源地址:https://github.com/alexazhou/VeryNginx

介绍

VeryNginx 基于 lua_nginx_module(openrestry) 开发,实现了高级的防火墙、访问统计和其他的一些功能。 集成在 Nginx 中运行,扩展了 Nginx 本身的功能,并提供了友好的 Web 交互界面。

VeryNginx在线实例

http://alexazhou.xyz/vn/index.html

用户名 / 密码: verynginx / verynginx

详细配置说明见:VeryNginx Github WiKi

Nginx 运行状态分析

  • 每秒请求数
  • 响应时间
  • 网络流量
  • 网络连接数

自定义行为

VeryNginx 包含强大的自定义功能,可以做很多事情

自定义行为包含两部分, Matcher 和 Action 。 Matcher 用来对请求进行匹配, Action 为要执行的动作

这样的优势在于把所有的前置判断整合在Matcher里一起来实现了,使复杂(组合)规则的实现变成了可能

Matcher

一个 Matcher 用来判断一个 Http 请求是否符合指定的条件, 一个 Matcher 可以包含一个或者多个约束条件,目前支持以下几种约束:

  • Client IP
  • Host
  • UserAgent
  • URI
  • Referer
  • Request Args

当一个请求没有违反 Matcher 中包含的全部条件时,即命中了这个 Matcher

Action

每个 Action 会引用一个 Matcher ,当 Matcher 命中时, Action 会被执行

目前已经实现了以下 Action

  • Scheme Lock 将访问协议锁定为 Https 或者 Http
  • Redirect 对请求进行重定向
  • URI Rewrite 对请求的 URI 进行内部重写
  • Browser Verify 通过set-cookies 和 js 验证客户端是否为浏览器,并拦截非浏览器流量。本功能可能会阻拦搜索引擎爬虫,建议仅在被攻击时开启,或者针对搜索引擎编写特别的规则。
  • Frequency Limit 访问频率限制
  • Filter(waf) 过滤器

因为 Matcher 可以对请求进行细致的匹配,所以结合 Filter Action,就可以实现一个高级的WAF,可以利用Matcher中所有的条件来对请求进行过滤,并返回指定状态码

VeryNginx 预置了常用的过滤规则,可以在一定程度上阻止常见的 SQL 注入、Git 及 SVN 文件泄露、目录遍历攻击,并拦截常见的扫描工具。

Backend

每个 Backend 会引用一个 Matcher ,当 Matcher 命中时, 请求会通过 Backend 进行处理

目前已经实现了以下 Backend

  • Proxy Pass 将请求反向代理到其它服务器
  • Static File 使用本地文件处理请求

访问统计

VeryNginx 可以统计网站每个URI的访问情况,包括每个URI的:

  • 总请求次数
  • 各状态码次数
  • 返回总字节数
  • 每请求平均字节数
  • 总响应时间
  • 平均响应时间

并且可以按各种规则排序进行分析。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表