# GoReverseProxy **Repository Path**: feiyumain/go-reverse-proxy ## Basic Information - **Project Name**: GoReverseProxy - **Description**: Windows下使用net8实现YARP替换nginx,实现高效反向代理 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-16 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ReverseProxy 这是一个基于 .NET 的反向代理服务器项目,主要用于请求路由和转发,同时提供了日志记录、安全控制和配置动态加载等功能。 ## 项目特点 - **灵活的路由配置**:支持通过配置文件定义多个站点和路由规则。 - **请求拦截与处理**:可以阻止特定文件扩展名的请求(如 `.aspx` 文件)。 - **日志记录**:支持详细的请求日志记录,包括请求体和响应状态码。 - **安全性**:支持配置黑名单扩展名,防止恶意请求。 - **动态配置加载**:可以在不重启服务的情况下重新加载配置。 ## 中间件功能 - `AspxBlockerMiddleware`:阻止包含特定扩展名的请求。 - `LocationRewriteMiddleware`:重写响应头中的 `Location` 字段。 - `ProxyLoggingMiddleware`:记录代理请求的详细日志。 ## 配置管理 - 支持从 `reverse-proxy.json` 文件中加载代理配置。 - 支持动态重载配置,无需重启服务。 ## 使用技术 - .NET 6+ - YARP (Yet Another Reverse Proxy) - C# 10+ ## 如何运行 1. 确保已安装 .NET 6 SDK。 2. 执行以下命令启动服务: ```bash dotnet run --project GoReverseProxy ``` 3. 服务默认监听 `http://localhost:5000`。 ## 配置文件 - `appsettings.json` 和 `appsettings.Development.json`:包含应用程序的基本配置。 - `reverse-proxy.json`:YARP 代理的核心配置文件。 ## 日志与安全配置 - `LoggingConfig.cs`:管理日志记录的配置,包括忽略的状态码和请求体日志规则。 - `SecurityConfig.cs`:管理安全相关的配置,如阻止的文件扩展名。 ## 开发与调试 - 使用 `launchSettings.json` 配置开发环境。 - 支持 HTTPS 开发证书(位于 `certs` 目录)。 ## 许可证 该项目遵循 MIT 许可证,请参阅 [LICENSE](LICENSE) 文件获取详细信息。