Phase 2: ProxyService reverse proxy (HTTP+WebSocket forwarding)
- New: services/proxy_service.py (path->URL mapping) - New: services/web_panel/routes/proxy.py (3 REST endpoints) - New: static/web_panel/pages/proxy.html (WebUI) - Tests: 28/28 passing
This commit is contained in:
@@ -5,6 +5,7 @@ import logging
|
||||
import asyncio
|
||||
import sys
|
||||
import signal
|
||||
from services.proxy_service import ProxyService
|
||||
from services.project_engine import ProjectEngine
|
||||
from services.pyenv_manager import PyEnvManager
|
||||
from services.web_panel.routes import projects
|
||||
@@ -181,20 +182,23 @@ class CatFramework:
|
||||
|
||||
# 注册框架关闭处理器
|
||||
shutdown_service.register_shutdown_handler(self._framework_shutdown_handler)
|
||||
# 11.7 项目引擎
|
||||
# 11.7 项目引擎 + 反向代理
|
||||
try:
|
||||
logger.info("> 初始化 项目引擎 中...")
|
||||
project_engine = ProjectEngine(self.service_manager)
|
||||
await project_engine.start()
|
||||
self.service_manager.register_service("project_engine", project_engine)
|
||||
pe_mgr = PyEnvManager("data/projects")
|
||||
self.service_manager.register_service("pyenv", pe_mgr)
|
||||
# project routes registered by web_panel manager (before router freeze)
|
||||
logger.info("✅ 项目引擎就绪")
|
||||
self.service_manager.register_service("pyenv", PyEnvManager("data/projects"))
|
||||
logger.info("> 初始化 反向代理 中...")
|
||||
proxy_service = ProxyService(self.service_manager)
|
||||
await proxy_service.start()
|
||||
if internet_service and internet_service.http_app:
|
||||
proxy_service.setup_routes(internet_service.http_app)
|
||||
self.service_manager.register_service("proxy", proxy_service)
|
||||
logger.info("✅ 项目引擎+反向代理就绪")
|
||||
except Exception as e:
|
||||
logger.warning(f"项目引擎初始化跳过: {e}")
|
||||
logger.warning(f"引擎/代理初始化跳过: {e}")
|
||||
|
||||
logger.info("🎉 SenSu 初始化完成!")
|
||||
logger.info("🎉 DreamSu 初始化完成!")
|
||||
self.is_running = True
|
||||
|
||||
# 显示欢迎日志
|
||||
@@ -414,6 +418,10 @@ if __name__ == "__main__":
|
||||
try:
|
||||
# 设置更详细的异常处理
|
||||
import signal
|
||||
from services.proxy_service import ProxyService
|
||||
from services.project_engine import ProjectEngine
|
||||
from services.pyenv_manager import PyEnvManager
|
||||
from services.web_panel.routes import projects
|
||||
|
||||
def signal_handler(signum, frame):
|
||||
"""信号处理"""
|
||||
|
||||
Reference in New Issue
Block a user