让公网 URL 与服务器目录解耦:一套低风险的 Apache 多应用路由重构方法
前言 一台 Web 服务器长期运行后,常会逐渐积累多个独立应用。最初部署时,为了省事,很多应用直接依赖站点根目录发布:磁盘目录叫 tool-alpha,公网地址也自然变成 /tool-alpha/。 这种方式能够工作,但公网 URL 与磁盘目录形成了不必要的一一绑定。项目目录一旦带有内部命名、历史命名或技术实现含义,公网地址也会跟着暴露;以后想调整 URL,又容易误以为必须移动项目目录。 更稳妥的做法是: 保持应用目录和程序结构不动,只在 Web 服务器配置层重新定义公网入口。 本文记录一次经过审计、分层验证和安全切换的实践。示例中的域名、主机名、应用名、目录、端口和配置文件名均为虚构内容。 一、改造前的典型结构 示例环境有两层 Web 服务: 公网客户端 ↓ HTTPSedge-gateway(Nginx) ↓ HTTP 反向代理web-node(Apache) ↓多个静态、PHP 和本地后端应用 网关层使用通用代理规则,将普通路径原样转发给后端 Apache: location / { proxy_pass http://10.0.0.20;} 后端 Apache 的站点根目录是: /srv/web/ 多个应用原先直接按目录名对外发布: /srv/web/app-alpha/ → /app-alpha//srv/web/app-beta/ → /app-beta//srv/web/app-gamma/ …