# dmz-relay **Repository Path**: ungeek/dmz-relay ## Basic Information - **Project Name**: dmz-relay - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-08-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dmz-relay dmz异步请求转发,具体文档参看 `doc` 目录 ## 介绍 主要有两个进程: - `relay` 外网前置 S2 服务器,用于接受外网请求 - `query` 内网前置服务器 S3,主动连接 `relay` 获取查询请求,并转发到查询服务器 `query` 启动时候,会连接 `relay` 服务器,建立 socket 连接,当 `relay` 接受到请求的时候, 会将请求推送给 `query`, `query` 从查询服务器获取结果返回到 `relay`,`relay` 将结果存储 到日志文件,并响应请求。 ## 配置 工程根目录提供配置文件 `conf.json` 方便对服务器进行配置: ```json { "debug": true, # 打印debug日志到控制台 "relay": { "port": 2333, # 监听 query 连接的端口 "http": 80, # 监听 http 查询请求端口,即企业前置查询端口 }, "query": { "query-server": "http://www.example.com", # 内网查询服务器地址 "header": false, # 是否发送 http 头部字段,建议保持默认 false "relay-host": "127.0.0.1", # relay 服务器的ip "relay-port": 2333, # relay 服务器的端口 "num-worker": 10 # 与 relay 服务器建立的并发连接数 "log-path": "./" # 数据持久化存储目录,按天存储 } } ``` ## 安装 首先将代码分别部署到 `外网前置S2` 和 `内网前置S3` 服务器,然后进入工程根目录,安装 `dep/` 目录下的依赖包,直接运行下面命令: python install.py ## 运行 进入工程更目录,确认配置文件 `conf.json` 设置正确 在 `外网前置S2` 主机上运行 `relay` 服务器 python run.py -c conf.json relay 在 `内网前置S3` 主机上运行 `query` 查询转发 python run.py -c conf.json query 理论上 `query` 服务器可以在多个主机或者单个主机运行多个实例 ## 数据库文件 数据库文件生成在配置文件 `log-path` 指定的目录下,名称为 `query_log-<日期>.txt`,每天 生成一个,格式为 "请求路径" , "请求的数据" , "响应数据的base64编码" 例如: "/index" , "{\"query\": 1}" , "XXYY"