docs(README): 更新项目文档
- 新增项目概述、核心功能、系统架构等章节 - 补充技术选型、安装指南等内容 - 优化现有章节的结构和表述
This commit is contained in:
parent
6c43f6ce59
commit
56210416a6
78
README.md
78
README.md
|
@ -1,16 +1,23 @@
|
||||||
# gohttp
|
# gohttp
|
||||||
|
|
||||||
|
## 项目概述
|
||||||
|
|
||||||
|
### 项目背景和价值
|
||||||
|
- **背景**: 实现一个类似Nginx功能的HTTP服务器,提供静态文件服务、反向代理、路径重写、TLS支持等功能。
|
||||||
|
- **价值**: 提供轻量级、高性能的HTTP服务解决方案,适用于中小型应用或特定场景下的负载均衡和反向代理需求。
|
||||||
|
|
||||||
## 目标
|
## 目标
|
||||||
|
|
||||||
实现一个类似nginx功能的http服务器
|
实现一个类似nginx功能的http服务器
|
||||||
## 功能
|
## 核心功能
|
||||||
|
|
||||||
- 支持静态文件
|
- 支持静态文件服务
|
||||||
- Proxy
|
- 反向代理(Proxy)
|
||||||
- 支持rewrite
|
- 路径重写(Rewrite)
|
||||||
- 支持TLS
|
- TLS加密支持
|
||||||
- 支持端口复用
|
- 端口复用
|
||||||
- 支持健康检查
|
- 健康检查
|
||||||
|
- 日志管理(支持Console和File两种Appender)
|
||||||
|
|
||||||
## 配置
|
## 配置
|
||||||
```json
|
```json
|
||||||
|
@ -163,29 +170,50 @@ paths 配置
|
||||||
模块支持的指令,以模块名作为前缀,如:Proxy_Path 是反向代理模块的Path指令。
|
模块支持的指令,以模块名作为前缀,如:Proxy_Path 是反向代理模块的Path指令。
|
||||||
没有前缀的,是全局指令,如:Set-Header 是设置header的指令。
|
没有前缀的,是全局指令,如:Set-Header 是设置header的指令。
|
||||||
|
|
||||||
## Packages
|
## 系统架构
|
||||||
|
|
||||||
### Server
|
### 整体架构
|
||||||
|
- **架构模式**: 单体架构,模块化设计
|
||||||
|
- **关键组件**:
|
||||||
|
- Server: Restful API注册、路由解析、中间件管理
|
||||||
|
- Handler: 文件和代理处理器
|
||||||
|
- HealthCheck: 上游服务器健康检测
|
||||||
|
- Admin: 管理后台API
|
||||||
|
|
||||||
RestMux 提供
|
### 技术选型
|
||||||
- Restful API注册功能的 ServerMux
|
- **编程语言**: Go (v1.23.0+)
|
||||||
- Route
|
- **依赖库**:
|
||||||
- Url路径参数解析(形如:/user/:id)
|
- `git.pyer.club/kingecg/cmux`: 多路复用支持
|
||||||
- 中间件
|
- `git.pyer.club/kingecg/godaemon`: 守护进程支持
|
||||||
- server管理
|
- `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
|
```bash
|
||||||
|
make clean && make build
|
||||||
提供文件和代理两种handler
|
```
|
||||||
其中proxy handler 提供简单的负载均衡和会话粘滞功能
|
- **运行命令**:
|
||||||
|
```bash
|
||||||
|
./target/<platform>/gohttpd
|
||||||
|
```
|
||||||
|
- **部署**: 使用`install.sh`脚本完成安装
|
||||||
|
|
||||||
## 构建
|
## 构建
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue