由Rust编写,wmproxy提供http/https代理、socks5代理、反向代理、静态文件服务器、内网穿透功能,并将实现websocket代理。项目地址:gitee.com/tickbh/wmproxy, github.com/tickbh/wmproxy。配置数据通常存储在配置文件中,修改后需要重启服务以使更改生效。在nginx中,可以使用nginx -s reload进行安全无缝的配置更新,多进程模式下,master进程通知work进程停止接收新请求,服务当前请求后重启。当前选择通过监听本地端口(127.0.0.1:8837)进行热更新,避免对外暴露端口的安全风险。此方式可高度定制,实时查询内存数据。实现原理涉及分平台编码,通过封装函数在函数级别实现端口复用功能切换。例如,将TcpListener::bind(addr)改为Helper::bind,实现代理和反向代理端口切换。测试功能验证配置加载和重启过程,修改端口后调用reload和stop指令,检查服务响应。实现流程包括启动、发送重载指令和处理消息的代码示例。控制终端接收HTTP指令,同步更新数据,确保各线程间的数据一致性。至此,wmproxy提供了一种不同于nginx的热更新机制,能够更灵活地管理配置,保护系统安全。点击[关注],[在看],[点赞]支持作者。