写点什么

NGINX Unit 增加反向代理和地址路由功能

2020 年 3 月 06 日

NGINX Unit增加反向代理和地址路由功能

NGINX官宣开源其 Web 及应用服务器 NGINX Unit 1.13和1.14版。新版本提供反向代理,并支持基于客户连接的 IP 地址和请求目标的地址匹配路由。


NGINX Unit支持同时运行 Go、Perl、PHP、Python、Node.JS、Java 和 Ruby 等多语言 Web 应用。服务器不依赖于静态配置文件,而是允许通过 REST API 使用 JSON 进行配置。配置保存在内存中,无需重启即可生效。


NGINX Unit 的最新发布版支持反向代理。通过在 Web 服务器前部署反向代理,可将客户请求反向转发给服务器。新的 proxy 选项已加入到通用路由框架中,支持代理请求特定地址。当前,代理地址在配置上支持 IPv4、IPv6 和 Unix Socket 地址。


举例说明,下例配置的 routes 对象,一旦接收的请求匹配设定条件,就将请求代理给 127.0.0.1:8000:


{  "routes": [    {      "match": {        "host": "v1.example.com"      },
"action": { "proxy": "http://127.0.0.1:8000" } } ]}
复制代码


其中,proxy 选项确定了流量将如何路由,它合并了前期添加的 pass 和 share 选项功能。pass 选项是1.8.0版中添加的,通过将请求路由给应用或路由器实现内部路由。在请求需由单独应用处理的情况下,内部路由非常有用。例如,错误的请求需传递到单独的应用做处理,以最大程度上降低对主应用的影响。


而 share 选项是在1.11.0版中添加的,支持分享静态文件。这包括支持 URI 中的编码符号、部分内置MiME类型和额外添加的类型。


在 1.14 版中,通过新定义的匹配选项 source 和 destination 支持地址匹配,实现基于地址的路由(Address-based routing)。其中,选项 source 支持基于连接客户端的 IP 地址做匹配,选项 destination 支持基于请求的目标地址做匹配。


新版本的路由引擎支持对基于 IPv4 和 IPv6 的模式和模式组进行地址值匹配。模式可使用端口号、确切地址和CIDR符号组成的通配符。下面给出的示例中,对于源地址匹配给定 CIDR 的请求,就可访问共享路径所设定的资源:


{  "routes": [    {      "match": {        "source": [          "10.0.0.0/8",           "10.0.0.0/7:1000",          "10.0.0.0/32:8080-8090"        ]      },
"action": { "share": "/www/data/static/" } } ]}
复制代码


假定上例定义的共享路径/www/data/static/具有如下结构:


/www/data/static/├── stylesheet.css├── html│  └──index.html└── js files   └──page.js
复制代码


那么对于请求 curl 10.0.0.168:1000/html/index.html,Nginx 代理将返回 index.html 文件。


按 F5 Networks 高级科技作者Artem Konev说法,NGINX Unit 未来版本将考虑的特性包括:轮询负载均衡、进一步增加应用隔离性的rootfs、处理静态断言的增强逻辑、内存性能改进等。


NGINX Unit 可在GitHub下载,并可通过NGINX Plus获取支持。新版本的更多细节,请访问NGINX Unit变更记录


原文链接:


NGINX Unit Adds Support for Reverse Proxying and Address-Based Routing


2020 年 3 月 06 日 09:001448

评论

发布
暂无评论
发现更多内容

架构师训练营第 0 期第 5 周作业

Arthur

极客大学架构师训练营

PHP实现一致性Hash算法

Arthur.Li

php 极客大学架构师训练营 一致性hash

读《看见》

YoungZY

分布式缓存架构与负载均衡架构

负载均衡 极客大学架构师训练营 消息队列 分布式缓存 第五周

架构师训练营 - 第 4 周命题作业

红了哟

ARTS打卡-05

Geek_yansheng25

ARTS打卡 第6周

引花眠

ARTS 打卡计划

架构师训练营 第5课作业

Glowry

极客大学架构师训练营

架构师训练营 第5课学习总结

Glowry

极客大学架构师训练营

消息队列与异步架构||负载均衡架构

独孤魂

依赖倒置原则

John

极客大学架构师训练营

区块链产业正开启“赛马”模式

CECBC区块链专委会

产业落地 政策扶持 赛马模式 技术革命

区块链各行业应用案例

CECBC区块链专委会

产业落地 政策扶持 去中心化信任 防篡改不可逆 低廉高效

为什么C++可以返回Vector局部变量

韩小非

c++ 内存泄露 函数调用 堆内存管理

谈谈Spring xml配置文件中的命名空间,以及一些例外情况

xiaoxi666

spring 命名空间

Cypress与TestCafe WebUI端到端测试框架简介

软测小生

自动化测试 Cypress TestCafe Web UI 测试框架

架构师训练营第五周总结

一剑

【第五周】学习总结——缓存、消息队列、负载均衡

三尾鱼

极客大学架构师训练营

iOS sonar实践

余志斐

ios sonar

架构师训练营第五章作业

饶军

Week3:作业二

车小勺的男神

week5.课后作业

个人练习生niki

架构师训练营--第五周作业

花花大脸猫

极客大学架构师训练营

分布式缓存框架

Arvin

第五周总结

胡江涛

极客大学架构师训练营

架构师训练营 - 学习总结 第 5 周

水边

极客大学架构师训练营

第五周-作业2-学习总结

seng man

架构师训练营第五周作业

CATTY

一致性Hash算法

操作系统概览

引花眠

计算机基础

计算机操作系统基础(十二)---线程同步之自旋锁

书旅

php laravel 线程 操作系统 进程

Week3:作业一

车小勺的男神

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

NGINX Unit增加反向代理和地址路由功能-InfoQ