使用 Go 语言重构的高性能 Web 服务器,兼容 Nginx 配置。
- ⚡ 高性能 Go 语言实现
- 🏗️ Master-Worker 架构
- 📁 静态文件服务 (支持 ETag, Last-Modified)
- 🌐 反向代理
- ⚖️ 负载均衡 (轮询、最少连接)
- 📦 Gzip 压缩
- 📝 Nginx 兼容配置
# 编译
go build -o nginxgo ./cmd/nginxgo
# 运行
./nginxgo -c conf/nginx.conf
# 或者使用默认配置
./nginxgo# 访问首页
curl http://localhost:80/
# 访问静态文件
curl http://localhost:80/html/index.html# NginxGo 配置文件
# Worker 进程数
worker_processes 1;
# 错误日志
error_log logs/error.log;
# PID 文件
pid logs/nginx.pid;
# 事件配置
events {
worker_connections 1024;
}
# HTTP 配置
http {
# 默认 MIME 类型
default_type application/octet-stream;
# 发送文件
sendfile on;
# 连接超时
keepalive_timeout 65;
# Gzip 压缩
gzip on;
# 服务器配置
server {
listen 80;
server_name localhost;
# 根目录
root html;
index index.html;
# 静态文件
location / {
root html;
index index.html;
}
# 反向代理示例
# location /api/ {
# proxy_pass http://localhost:8080;
# }
}
}| 指令 | 说明 | 示例 |
|---|---|---|
worker_processes |
Worker 进程数量 | worker_processes 4; |
error_log |
错误日志路径 | error_log logs/error.log; |
listen |
监听端口 | listen 80; |
server_name |
服务器名称 | server_name localhost; |
root |
文档根目录 | root html; |
index |
默认首页 | index index.html; |
location |
URL 路由 | location / {} |
proxy_pass |
反向代理目标 | proxy_pass http://localhost:8080; |
gzip |
启用 Gzip 压缩 | gzip on; |
nginxgo [-c configfile] [-v]-c: 配置文件路径 (默认:conf/nginx.conf)-v: 显示版本信息
nginxgo/
├── cmd/nginxgo/ # 程序入口
├── pkg/
│ ├── config/ # 配置解析
│ ├── core/ # 核心模块
│ ├── event/ # 事件循环
│ ├── http/ # HTTP 服务器
│ │ ├── handler/ # 处理器
│ │ └── filter/ # 过滤器
│ ├── upstream/ # 负载均衡
│ └── log/ # 日志系统
├── conf/ # 配置文件
├── html/ # 静态文件
└── go.mod
go test ./...# 查看 API 文档或使用 godoc
godoc -http=:6060MIT License