https://github.com/tang-jie/NettyGateway
NettyGateway is a HTTP proxy server with flexible routing rules.
https://github.com/tang-jie/NettyGateway
http-proxy netty router
Last synced: 7 days ago
JSON representation
NettyGateway is a HTTP proxy server with flexible routing rules.
- Host: GitHub
- URL: https://github.com/tang-jie/NettyGateway
- Owner: tang-jie
- License: apache-2.0
- Created: 2018-04-18T13:50:56.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-24T02:19:27.000Z (almost 8 years ago)
- Last Synced: 2025-08-11T20:04:48.160Z (7 months ago)
- Topics: http-proxy, netty, router
- Language: Java
- Size: 250 KB
- Stars: 97
- Watchers: 9
- Forks: 56
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - NettyGateway
README
# NettyGateway
* English:NettyGateway is a HTTP proxy server with flexible routing rules.
* Chinese:基于Netty编写的轻量级HTTP代理转发服务器,可以根据请求的内容关键字进行定制化的规则路由。相比于Nginx(OpenResty)通过lua脚本配置方式,进行的规则路由而言,配置更加简单。
----------
## 如何用Netty实现一个轻量级的HTTP代理服务器
有兴趣的朋友可以点击查看:https://www.cnblogs.com/jietang/p/8926325.html
----------
## NettyGateway配置说明
* NettyGateway默认启动端口8999,你可以通过[netty-gateway.xml](https://github.com/tang-jie/NettyGateway/blob/master/src/main/resources/netty-gateway.xml)的gatewayPort属性进行配置。
* 配置文件[netty-gateway.properties](https://github.com/tang-jie/NettyGateway/blob/master/src/main/resources/netty-gateway.properties),主要用来定义http post请求中url的路径(path)部分serverPath,以及当请求报文关键字没有匹配成功的时候,默认转发的URL地址defaultAddr。
* 配置文件[netty-route.properties](https://github.com/tang-jie/NettyGateway/blob/master/src/main/resources/netty-route.properties),主要用来定义http post请求中url的路径(path)部分serverPath(路径部分定义必须在netty-gateway.properties中定义过),以及当请求报文关键字keyWord匹配成功的时候,路由转发的URL地址matchAddr。
----------
## NettyGateway代理转发场景描述
* NettyGateway部署在10.1.1.76主机,URL中的路径为:fcgi-bin/BSSP_SFC
* 如果请求报文中出现HelloWorldNettyGateway关键字的时候,转发到http://10.46.158.20:8089/fcgi-bin/BSSP_SFC
* 否则转发到http://10.46.158.10:8089/fcgi-bin/BSSP_SFC
----------
## NettyGateway代理转发场景配置说明
* 配置文件[netty-gateway.properties](https://github.com/tang-jie/NettyGateway/blob/master/src/main/resources/netty-gateway.properties)新增如下属性:
~~~~~~~~~~java
#配置说明参考:
#netty-gateway.config2.serverPath ==> URL路径关键字。
#netty-gateway.config2.defaultAddr ==> 请求报文中的关键字没有匹配成功时,默认转发的URL地址。
netty-gateway.config2.serverPath=fcgi-bin/BSSP_SFC
netty-gateway.config2.defaultAddr=http://10.46.158.10:8089/fcgi-bin/BSSP_SFC
#注意config中的数字顺序递增即可。
~~~~~~~~~~
* 配置文件[netty-route.properties](https://github.com/tang-jie/NettyGateway/blob/master/src/main/resources/netty-route.properties)新增如下属性:
~~~~~~~~~~java
#配置说明参考:
#netty-gateway.config3.serverPath ==> URL路径关键字。
#netty-gateway.config3.keyWord ==> 请求报文匹配关键字。支持1~N个关键字,多个关键字用逗号分割,关键字之间是逻辑与的关系。
#netty-gateway.config3.matchAddr ==> 请求报文关键字匹配成功时,转发的ULR地址。
netty-gateway.config3.serverPath=fcgi-bin/BSSP_SFC
netty-gateway.config3.keyWord=HelloWorldNettyGateway
netty-gateway.config3.matchAddr=http://10.46.158.20:8089/fcgi-bin/BSSP_SFC
#注意config中的数字顺序递增即可。
~~~~~~~~~~
## NettyGateway代理转发测试
* 启动NettyGateway服务器,控制台打印如下信息

* 发送HelloWorldNettyGateway到NettyGateway,关键字匹配成功,路由到http://10.46.158.20:8089/fcgi-bin/BSSP_SFC

* 发送Tangjie到NettyGateway,关键字匹配不成功,路由到默认的http://10.46.158.10:8089/fcgi-bin/BSSP_SFC
