Skip to content

NSQ-123/WebServer_py

Repository files navigation

🎮 游戏CDN服务器

一个专为游戏资源下载设计的高性能CDN服务器,支持静态文件服务、缓存优化、跨域访问等功能。

Python License Docker

🚀 快速开始

1. 启动服务器

Linux/macOS

# 使用Make命令(推荐)
make start

# 或使用启动脚本
./scripts/start.sh

# 或直接运行Python
python3 src/server.py

Windows

# 使用批处理脚本(推荐)
scripts\start.bat

# 或使用PowerShell脚本
.\scripts\start.ps1

# 或直接运行Python
python src\server.py

注意:Windows用户也可以直接双击 scripts\start.bat 文件启动服务器。

2. 访问测试页面

打开浏览器访问:http://localhost:3000/assets/test.html

📁 项目结构

GameCDN/
├── src/                    # 源代码目录
├── scripts/               # 脚本目录
├── docs/                  # 文档目录
├── examples/              # 示例目录
├── logs/                  # 日志目录
├── public/                # 静态文件目录
├── Dockerfile             # Docker配置
├── docker-compose.yml     # Docker Compose配置
├── Makefile               # 项目管理脚本
└── requirements.txt       # Python依赖

🔗 主要功能

  • 静态文件服务 - 高效的文件分发服务
  • 智能缓存 - 根据文件类型设置不同的缓存策略
  • 跨域支持 - 支持CORS,方便前端调用
  • 压缩传输 - 自动压缩文件减少传输大小
  • 断点续传 - 支持Range请求,支持大文件断点续传
  • 健康检查 - 提供服务器状态监控接口
  • 文件管理 - 支持文件信息查询和目录浏览

🛠️ 常用命令

# 查看所有命令
make help

# 启动服务器
make start

# 查看服务器状态
make status

# 运行测试
make test

# 查看日志
make logs

# 清理临时文件
make clean

# 部署生产环境
make deploy

# Docker操作
make docker-build
make docker-run
make docker-compose-up

🔗 API接口

接口 方法 说明
/health GET 健康检查
/assets/* GET 静态文件服务
/info/:file GET 文件信息
/list GET 根目录列表
/list/:dir GET 目录列表

🎮 游戏集成示例

Unity C# 集成

public IEnumerator DownloadAsset(string assetPath)
{
    string url = "http://localhost:3000/assets/" + assetPath;
    using (UnityWebRequest request = UnityWebRequest.Get(url))
    {
        yield return request.SendWebRequest();
        if (request.result == UnityWebRequest.Result.Success)
        {
            // 处理下载的文件
            byte[] data = request.downloadHandler.data;
        }
    }
}

JavaScript 集成

async function downloadGameAsset(assetPath) {
    const response = await fetch(`http://localhost:3000/assets/${assetPath}`);
    if (response.ok) {
        const blob = await response.blob();
        return blob;
    }
}

🐳 Docker 部署

# 构建镜像
make docker-build

# 运行容器
make docker-run

# 使用Docker Compose
make docker-compose-up

📊 性能特性

  • 缓存策略: 图片7天,音频30天,数据1天
  • 压缩传输: 自动Gzip压缩减少带宽
  • 并发处理: 支持多客户端同时访问
  • 断点续传: 支持大文件分块下载

🧪 测试

启动服务器后,访问以下地址进行测试:

📖 详细文档

⚙️ 配置

复制 env.example.env 并修改配置:

cp env.example .env

环境变量

变量名 默认值 说明
PORT 3000 服务器端口
HOST localhost 服务器主机
STATIC_DIR ./public 静态文件目录
CACHE_DURATION 86400 缓存持续时间(秒)

🚀 部署

开发环境

make start

生产环境

make deploy

Docker环境

make docker-compose-up

🤝 贡献

欢迎提交Issue和Pull Request来改进这个项目!

📄 许可证

MIT License

📞 支持

如果遇到问题,请:

  1. 查看 详细文档
  2. 检查 使用指南
  3. 运行 make test 进行诊断
  4. 查看 logs/cdn_server.log 日志文件

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors