Apache 中 URL 重写怎么实现多域名共享同一个后端系统的路径映射

夜萱君_3050

夜萱君_3050

2026-09-05

364人浏览

原创

apache中实现多域名共享同一后端系统,本质是通过virtualhost配置proxypass+proxypreservehost+proxypassreverse,透传原始host头并重写响应头,确保url表现一致、cookie正确、静态资源可访问。

apache 中 url 重写怎么实现多域名共享同一个后端系统的路径映射

Apache 中实现多域名共享同一后端系统,本质是让不同域名(如 siteA.com、siteB.net)的请求,按规则映射到后端服务的同一套路径逻辑(比如都转发给 http://127.0.0.1:8080/),同时保持 URL 表现一致、Cookie 正确、静态资源可访问。这不是靠 RewriteRule “改地址栏”就能完成的,关键在反向代理 + 主机头透传 + 路径适配。

用 ProxyPass 实现跨域名统一后端接入

多个域名要共用一个后端应用(如 Java Spring Boot 或 Node.js 服务),最直接的方式是为每个域名配置独立的 VirtualHost,并统一使用 ProxyPass 指向后端地址:

  • 确保已启用 mod_proxy 和 mod_proxy_http
  • 每个 <virtualhost></virtualhost> 块中,设置:
    ProxyPreserveHost On —— 把原始 Host 头(如 siteA.com)传给后端,让后端能识别当前访问的是哪个站点
    ProxyPass / http://127.0.0.1:8080/ —— 所有根路径请求代理过去
    ProxyPassReverse / http://127.0.0.1:8080/ —— 重写后端返回的 Location 等响应头,避免跳转回内部地址
  • 若后端需区分来源域名做定制逻辑(如读取 Host 判断租户),这个 Host 透传就是前提

路径前缀隔离(可选):同一后端支撑多租户子路径

如果不想完全裸露根路径,而是希望 siteA.com/app1/ 和 siteB.net/app2/ 都映射到后端的 /,但彼此隔离,可用带路径的 ProxyPass:

Apache Superset Dashboard and SQL Exploration Skill
Apache Superset Dashboard and SQL Exploration Skill

Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。

下载
  • ProxyPass /app1/ http://127.0.0.1:8080/
  • ProxyPassReverse /app1/ http://127.0.0.1:8080/
  • 后端收到的请求路径会自动去掉 /app1 前缀,例如 GET /app1/api/user → 后端实际处理 /api/user
  • 注意:后端生成的绝对链接(如 <a href="/static/css/main.css"></a>)仍以根为基准,需配合 <base href="/app1/"> 或后端动态注入 basePath

Cookie 与 Session 的跨域名一致性处理

多个域名共享后端意味着登录态要互通,否则用户在 siteA.com 登录后,访问 siteB.net 又要重新登录:

  • 后端设 Cookie 时,Domain 必须设为公共父域,例如 Domain=.example.com(前提是所有域名都在 xxx.example.com 下)
  • 若域名完全无关(如 siteA.com 和 siteB.net),无法通过 Domain 共享 Cookie;此时应改用 Token + 后端统一鉴权中心(如 JWT 存 Redis),前端把 token 放请求头传递
  • Apache 本身不管理 session,但可通过 RequestHeader set X-Forwarded-Host %{HTTP_HOST}e 把原始域名传给后端,辅助租户识别

静态资源与 HTTPS 适配要点

前端 HTML 中的资源链接(CSS/JS/图片)若写死为绝对路径(如 https://siteA.com/js/app.js),换域名就会 404:

  • 推荐全部使用相对路径(./js/app.js)或协议相对路径(//siteA.com/js/app.js)
  • 若必须用绝对路径,可在 Apache 中用 Substitute 模块动态替换响应体中的 URL(需启用 mod_substitute 和 mod_filter)
  • HTTPS 场景下,务必在 VirtualHost 的 443 端口配置中添加 RequestHeader set X-Forwarded-Proto "https",避免后端误判为 HTTP 导致跳转循环或混合内容警告

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

apache

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2643

5

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6730

13

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6166

10

服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3152

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1036

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

929

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

474

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习