28 Commits

Author SHA1 Message Date
6c7bc2bfb8 refactor(proxy): Improve error handling and response writing in proxy handler
- Modify error response writing to use explicit WriteHeader and Write methods
- Remove redundant WriteHeader call in ServeHTTP method
- Add WriteHeader before writing response for both small and large responses
- Enhance code readability and error handling consistency
2025-02-15 08:34:14 +08:00
e89ef02205 特性(代理):通过端口和身份验证更新来增强服务器配置和安全性。
- 更新 docker-compose.yml 文件,使用端口 3336
- 修改 Dockerfile 以暴露端口 3336
- 重构 main.go 以支持新的路由和管理端点
- 在 auth.go 中实现健壮的身份验证中间件
- 通过加强错误检查来改进指标处理。
- 添加用于安全类型转换的实用函数
- 引入请求ID生成功能,以便更好地进行追踪。
2025-02-15 08:07:28 +08:00
f76649d0e7 refactor(proxy): streamline target URL selection logic by removing deprecated path handling 2025-01-12 18:24:19 +08:00
e286fa9eaf feat(metrics): enhance metrics retention and improve data handling
- Introduced new constants for data retention periods, specifying retention for metrics, status codes, paths, and referers to improve data management.
- Updated the MetricsHistoryHandler to accept floating-point hours for more precise time queries, enhancing the flexibility of historical data retrieval.
- Enhanced the metrics dashboard layout with additional CSS styles for better visual presentation and user experience.
- Improved error handling in the response writing process to ensure robust logging of connection issues.
- Implemented a new function to check for connection closure errors, improving the reliability of the proxy handler.

These changes significantly enhance the metrics collection, retention, and user interface, providing a more robust framework for performance monitoring and data analysis.
2024-12-05 07:57:02 +08:00
9602034f9d feat(metrics): improve metrics handling with safe type conversions and enhanced request statistics
- Introduced safe type conversion functions to prevent panics when accessing metrics data.
- Updated MetricsHandler to utilize these functions for retrieving active requests, total requests, total errors, and average response time.
- Enhanced error rate calculation to avoid division by zero.
- Refactored buffer pool management in ProxyHandler for better memory handling.
- Improved target URL determination logic based on file extensions for more flexible proxy behavior.
2024-12-03 18:11:29 +08:00
68c27b544b feat(metrics): enhance metrics functionality and configuration
- Added new dependency on github.com/mattn/go-sqlite3 for improved metrics storage.
- Updated main.go to initialize metrics collector with a new database path and configuration settings.
- Enhanced config.json to include additional metrics settings such as alert configurations and latency thresholds.
- Refactored internal metrics handling to support new metrics structures and improve data retrieval.
- Introduced a new metrics history endpoint for retrieving historical data, enhancing monitoring capabilities.
- Improved UI for metrics dashboard to include historical data visualization options.
2024-12-03 17:48:11 +08:00
d4af4c4d31 feat(metrics): enhance metrics collection and UI with top referers tracking
- Added support for tracking top referers in the metrics collector, allowing for better insights into request sources.
- Updated MetricsHandler to include top referers in the metrics response.
- Enhanced the metrics UI to display a new section for the top 10 referers, improving visibility into traffic sources.
- Refactored request recording to capture referer information in the collector for comprehensive statistics.
2024-11-30 22:55:31 +08:00
040b01f4a4 feat(metrics): integrate comprehensive metrics tracking across handlers
- Enhanced metrics collection in ProxyHandler, MirrorProxyHandler, and FixedPathProxyMiddleware.
- Introduced a centralized metrics collector to streamline request tracking and statistics reporting.
- Updated MetricsHandler to utilize new metrics structure, including total bytes, requests per second, and error rates.
- Improved documentation in readme.md to reflect new features and usage instructions.
- Added support for metrics monitoring at `/metrics/ui` for better visibility into proxy performance.
2024-11-30 22:26:11 +08:00
8770d79bb8 feat(docker-compose, config, handler): enhance deployment configuration, add metrics support, and improve proxy handling
- Updated docker-compose.yml to include resource limits and health checks for the service.
- Modified go.mod and go.sum to include the new dependency on golang.org/x/time.
- Enhanced main.go to add new metrics routes for monitoring.
- Updated config.json to include metrics configuration with password and token expiry.
- Refactored internal/config to implement a ConfigManager for dynamic configuration loading.
- Improved internal/handler to utilize a shared HTTP client and added metrics tracking for requests.
2024-11-30 21:11:05 +08:00
7ee1b0efb5 refactor(internal/handler): optimize image request handling and cloudflare headers 2024-11-17 10:47:41 +08:00
74189ed602 feat(internal/handler): optimize image request handling by setting optimized Accept headers and Cloudflare-specific headers 2024-11-17 10:41:26 +08:00
1e65ccad58 refactor(internal/handler): simplify HTTP client configuration and remove strict CSP header 2024-11-17 10:36:34 +08:00
c71698e5ad refactor(internal/handler): optimize image request handling based on Accept header 2024-11-17 09:38:01 +08:00
e4d7a16f99 refactor(internal/handler): optimize image request handling and headers 2024-11-17 09:07:14 +08:00
fe6d604600 feat(internal/handler/proxy): enhance proxy handler to handle image requests and important headers
feat(internal/utils): add IsImageRequest function to identify image requests
2024-11-17 09:01:19 +08:00
17f9692ce6 refactor(config): optimize extension mapping handling and add utility methods 2024-11-17 08:24:57 +08:00
c2ba3e4d3d feat(config): add UnmarshalJSON method and update NewProxyHandler parameter type 2024-11-17 08:15:29 +08:00
74280e215e 新增支持: 按不同文件回源不同地址 2024-11-17 08:12:04 +08:00
073d364695 style(internal/handler, internal/middleware): Refactor logging format for consistency and clarity 2024-11-03 08:33:38 +08:00
eda76c1683 refactor(internal/handler, internal/middleware): improve access log format and content 2024-11-03 08:10:45 +08:00
3c380ef5e9 refactor(internal/handler, internal/middleware): Move getClientIP and formatBytes to utils package 2024-10-31 08:38:07 +08:00
b1b6a430cd refactor(internal): improve logging and byte format in proxy handlers 2024-10-31 08:07:03 +08:00
4b902b5d92 refactor(handler): improve URL encoding and disable response compression 2024-10-30 09:40:02 +08:00
110f1efe83 chore(workflow): remove date step from docker build and update proxy.go
Remove unnecessary date step from docker build workflow and simplify proxy.go code
2024-10-30 09:23:08 +08:00
62b82bfb5a feat(internal/handler): enhance proxy handler to preserve compression and content type 2024-10-30 09:13:36 +08:00
d8e9b90105 fix(internal/handler): add URL parsing and update headers for proxy requests 2024-10-30 09:01:31 +08:00
3ea86189b1 feat(internal/handler): add logging and streaming for proxy handler 2024-10-30 08:37:40 +08:00
723b73d748 feat: add compression support and update deployment workflow
add brotli and gzip compression support, update docker-compose and deployment script
2024-10-30 07:43:17 +08:00