记录值得记录下的事情

VeryNginx安装手记

由于日常项目开发的过程中产生了许多RestFul接口,需要一个 API_Gateway 网关做统一管理处理。在对比 Kong、Orange、VeryNginx 后,决定选取 VeryNginx 作为 API_Gateway 网关,并在其基础上进行二次开发与现有项目更好的结合。
VeryNginx 主要由两部分组成:基于 Lua-Nginx-Module 开发的 Lua 脚本,以及基于 HTML/CSS/JS 开发的 Web 控制面板,用于生成和管理 Lua 脚本所需的配置。
2481642605.png
Lua-Nginx-Module 能让 Lua 脚本直接跑在 Nginx 内部,比用 C 语言开发 Nginx 模块更容易上手,同时还能充分利用 Nginx 的非阻塞 I/O 模型,非常适合开发功能复杂、性能优异的 Web 应用。同时,它也是大家熟知的 OpenResty 套件中一个最核心的模块。
VeryNginx 通过在请求的不同阶段(如 init_by_lua/rewrite_by_lua/access_by_lua/log_by_lua)执行不同 Lua 脚本,从而实现对请求按规则过滤及对不同标签的请求进行不同的处理的功能。除此之外,它还支持常见的统计报表日志监控。

安装 VeryNginx

VeryNginx GitHub: >传送门

VeryNginx 依赖以下三个 Nginx 模块:

lua-nginx-module
http_stub_status_module
http_ssl_module

如果对 Nginx 没有定制化需求,建议使用 VeryNginx 默认的安装脚本,它会同时装好 VeryNginx 自身和 OpenResty 套件。

安装相关组件依赖:

#Fedora/Centos  
yum install gcc pcre pcre-devel openssl openssl-devel
#Debian/Ubuntu  
apt-get install gcc libssl libssl-dev libpcre3 libpcre3-dev

安装 VeryNginx&OpenResty:

git clone https://github.com/alexazhou/VeryNginx.git
cd VeryNginx
sudo python install.py install #不需要Python组件支持(脚本为简单的复制和授权)

如果有 Nginx 定制化需求,仅安装 VeryNginx:

sudo python install.py install verynginx

配置 VeryNginx

在 Nginx 配置中引入 VeryNginx 的配置文件,就可以让 VeryNginx 工作起来(可参照 VeryNginx 的 Nginx.conf 示例)

首先要修改的是 Nginx 的主配置,一般位于 /usr/local/nginx/conf/nginx.conf。

在主配置文件的最外层,加入以下配置: include
/opt/verynginx/verynginx/nginx_conf/in_external.conf; 在主配置的 http
段落中,加入以下配置: include
/opt/verynginx/verynginx/nginx_conf/in_http_block.conf; 在具体站点配置的
server 段落中,加入以下配置: include
/opt/verynginx/verynginx/nginx_conf/in_server_block.conf;

添加之后,建议通过 -t 参数确保配置无误:

/usr/local/nginx/sbin/nginx -t

如果提示 test is successful,说明配置无误,可以重载 Nginx 服务;否则请根据提示排查。
如果一切顺利,访问 http://yourdomain.com/verynginx/index.html 就可以见到 VeryNginx 的 Web 控制面板。

默认用户名和密码 verynginx/verynginx (登录后请务必修改)

标签: Nginx, VeryNginx, Lua, API, Gateway

添加新评论

仅有一条评论

  1. dai3 dai3

    请问 VeryNginx 使用得怎么样? 我也在对比 Kong、Orange、VeryNginx