# go-gateway **Repository Path**: fierce_wolf/go-gateway ## Basic Information - **Project Name**: go-gateway - **Description**: 简单的转发网关,用于将多个后台服务串接成一个统一的对外的服务 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-13 - **Last Updated**: 2025-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-fox-edge-iot-gateway ## 说明 我手头上有不少服务化的项目,是由多个开源项目组合而成,这些服务部署在不同的服务器上,这时候就迫切需要一个网关服务作为统一的入口, 然后在路由到各个具体的后台服务器上。 这时候需要配置一个文件,然后进行一个简单的转发的入口gateway即可,但是,我又不想要java或者其他第三方哪种非常臃肿的实现。 所以,就简单开发了这么一个gateway服务。 ## 特点 #### 易用 过修改/conf/router.json配置,就可以实现将外部请求,向内部的多个服务转发 #### 轻量级 它只需要依赖一个redis ## 启动 #### 最简参数 默认端口为8080,不使用redis ``` # 默认端口为8080,不使用redis gateway # 指明端口为9546,不使用redis gateway port=9546 # 指明端口为9546,指明使用HTTPS为对外服务,信任证书和私有证书所在的文件目录 gateway port=9546 https.certFile=tls/server.crt https.keyFile=tls/server.key ``` #### Redis配置 有时候,用户想要启用多个gateway作为分担多个用户客户端的访问入口,共同分担流量,那么可以通过redis实现多个gateway的 **一主多从** 方案, 也就是一个gateway负责将配置写入redis,其他gateway从redis读取配置 ``` # gateway(主):指明端口为9546,使用redis共享信息,本服务redis中key是fox-edge:gateway,配置写入redis中 gateway port=9546 redis.prefix=fox-edge:gateway redis.writer=true redis.host=192.168.1.23 redis.port=6379 redis.password=12345678 https.certFile=tls/server.crt https.keyFile=tls/server.key # gateway(从):指明端口为9546,使用redis共享信息,本服务redis中key是fox-edge:gateway,从redis中读取配置 gateway port=9546 redis.prefix=fox-edge:gateway redis.writer=false redis.host=192.168.1.23 redis.port=6379 redis.password=12345678 https.certFile=tls/server.crt https.keyFile=tls/server.key ```