diff --git a/README.md b/README.md index a9b93a1..8e4a6c8 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,23 @@ # gohttp +## 项目概述 + +### 项目背景和价值 +- **背景**: 实现一个类似Nginx功能的HTTP服务器,提供静态文件服务、反向代理、路径重写、TLS支持等功能。 +- **价值**: 提供轻量级、高性能的HTTP服务解决方案,适用于中小型应用或特定场景下的负载均衡和反向代理需求。 + ## 目标 实现一个类似nginx功能的http服务器 -## 功能 +## 核心功能 -- 支持静态文件 -- Proxy -- 支持rewrite -- 支持TLS -- 支持端口复用 -- 支持健康检查 +- 支持静态文件服务 +- 反向代理(Proxy) +- 路径重写(Rewrite) +- TLS加密支持 +- 端口复用 +- 健康检查 +- 日志管理(支持Console和File两种Appender) ## 配置 ```json @@ -163,29 +170,50 @@ paths 配置 模块支持的指令,以模块名作为前缀,如:Proxy_Path 是反向代理模块的Path指令。 没有前缀的,是全局指令,如:Set-Header 是设置header的指令。 -## Packages +## 系统架构 -### Server +### 整体架构 +- **架构模式**: 单体架构,模块化设计 +- **关键组件**: + - Server: Restful API注册、路由解析、中间件管理 + - Handler: 文件和代理处理器 + - HealthCheck: 上游服务器健康检测 + - Admin: 管理后台API -RestMux 提供 -- Restful API注册功能的 ServerMux -- Route -- Url路径参数解析(形如:/user/:id) -- 中间件 -- server管理 +### 技术选型 +- **编程语言**: Go (v1.23.0+) +- **依赖库**: + - `git.pyer.club/kingecg/cmux`: 多路复用支持 + - `git.pyer.club/kingecg/godaemon`: 守护进程支持 + - `git.pyer.club/kingecg/gologger`: 自定义日志库 + - `github.com/golang-jwt/jwt/v5`: JWT支持 + - `github.com/nanmu42/gzip`: Gzip压缩支持 + - `github.com/samber/lo`: 工具库 -### model -提供模型定义 +## 安装指南 -### admin -管理后台api +### 开发环境搭建 +1. 安装Go语言环境(版本>=1.23.0) +2. 克隆项目代码到本地: + ```bash + git clone + cd /persistent/home/kingecg/work/code/gohttp + ``` +3. 安装依赖: + ```bash + go mod tidy + ``` -### handler - -目录 handler - -提供文件和代理两种handler -其中proxy handler 提供简单的负载均衡和会话粘滞功能 +### 构建与运行 +- **构建命令**: + ```bash + make clean && make build + ``` +- **运行命令**: + ```bash + ./target//gohttpd + ``` +- **部署**: 使用`install.sh`脚本完成安装 ## 构建