docs(README): 更新项目文档
- 新增项目概述、核心功能、系统架构等章节 - 补充技术选型、安装指南等内容 - 优化现有章节的结构和表述
This commit is contained in:
parent
6c43f6ce59
commit
56210416a6
78
README.md
78
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 <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`脚本完成安装
|
||||
|
||||
## 构建
|
||||
|
||||
|
|
Loading…
Reference in New Issue