puniyu_server

Crates.iopuniyu_server
lib.rspuniyu_server
version0.7.8
created_at2025-10-25 03:34:48.914114+00
updated_at2026-01-12 06:55:56.346625+00
descriptionpuniyu 的服务器模块
homepagehttps://github.com/puniyu/puniyu
repositoryhttps://github.com/puniyu/puniyu
max_upload_size
id1899647
size72,792
wuliya (shiwuliya)

documentation

README

puniyu_server

puniyu Web服务器模块

概述

puniyu_server 是 puniyu 项目中的 Web 服务器核心库,基于 actix-web 框架构建。它提供了 HTTP 服务器的启动、日志记录、访问日志中间件等核心功能。

核心功能

服务器启动

  • run_server: 启动 HTTP 服务器的主函数
  • run_server_spawn: 在后台线程中启动 HTTP 服务器

服务器配置:

  • 默认监听地址:127.0.0.1:33720
  • 可通过环境变量 HTTP_HOSTHTTP_PORT 自定义
  • 支持通过参数指定监听地址和端口

日志系统

  • log_init: 初始化日志系统
  • 支持环境变量配置日志级别
  • 提供统一的日志宏:info!warn!error!debug!

日志配置:

  • 默认日志级别:info
  • 可通过 LOGGER_LEVEL 环境变量设置
  • 日志前缀统一为 Server

中间件

AccessLog 中间件

记录 HTTP 请求访问日志:

  • 记录请求方法、路径、响应状态码
  • 记录请求处理耗时(毫秒)
  • 记录客户端 IP 地址
  • 支持从 HTTP 头部解析真实客户端 IP(X-Forwarded-ForX-Real-IPTrue-Client-Ip

NormalizePath 中间件

标准化请求路径:

  • 自动处理尾部斜杠
  • 统一路径格式

项目结构

src/
├── lib.rs          # 库导出模块
├── main.rs         # 主程序入口
├── server.rs       # 服务器核心逻辑
├── logger.rs       # 日志系统
├── middleware/     # 中间件模块
│   └── logger.rs   # 访问日志中间件

环境变量配置

  • HTTP_HOST: 服务器监听地址(默认:127.0.0.1)
  • HTTP_PORT: 服务器监听端口(默认:33720)
  • LOGGER_LEVEL: 日志级别(默认:info)
  • LOGGER_ENABLE: 日志启用开关(默认:info)

特性

  • 异步支持: 基于 tokio 异步运行时
  • 高性能: 使用 actix-web 框架提供高性能 HTTP 服务
  • 可配置: 支持环境变量和参数配置
  • 日志记录: 完整的访问日志和应用日志
  • IP 解析: 智能解析真实客户端 IP 地址
  • 路径标准化: 自动处理 URL 路径格式

示例响应

服务器启动后,默认在根路径 / 返回 "Hello World!" 响应。

许可证

本项目采用 LGPL 许可证。

Commit count: 314

cargo fmt