docs(README): 更新项目文档

- 新增项目概述、核心功能、系统架构等章节
- 补充技术选型、安装指南等内容
- 优化现有章节的结构和表述
This commit is contained in:
程广 2025-06-13 17:56:27 +08:00
parent 6c43f6ce59
commit 56210416a6
1 changed files with 53 additions and 25 deletions

View File

@ -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 <repository-url>
cd /persistent/home/kingecg/work/code/gohttp
```
3. 安装依赖:
```bash
go mod tidy
```
### handler
目录 handler
提供文件和代理两种handler
其中proxy handler 提供简单的负载均衡和会话粘滞功能
### 构建与运行
- **构建命令**:
```bash
make clean && make build
```
- **运行命令**:
```bash
./target/<platform>/gohttpd
```
- **部署**: 使用`install.sh`脚本完成安装
## 构建