apache - 基于完整域名重新路由http请求

标签 apache tomcat url-routing port

假设我在每种可想到的技术上都有多个 http 服务器。例如用于 PHP 的 Apache、用于 JSP 的 Tomcat 等等......在一台机器上运行,具有一个物理接口(interface)和一个公共(public) IP。

现在,我希望它们都在同一个端口上响应,当然是 80。这是不可能的,因为一个应用程序 = 一个使用 TCP/IP 的端口。我知道,例如 apache 可以集成 Tomcat,并处理 .jsp 页面上的请求给他,但我正在考虑不同的、更通用的方法。

这是可能的,也许更好的问题是,是否有任何应用程序可以预过滤 http 请求并将它们转发到不同的端口?基于请求的域?双向?所以客户会认为他正在与端口 80 通话,但在内部他会由运行在端口 8080 上的 Tomcat 提供服务?我希望你明白我的意思。

谢谢。

最佳答案

我会使用反向代理,例如 apache mod_proxy。反向代理将传入请求重新路由到正确的服务器,即使所有服务器都在同一台物理主机上。

Reverse proxies can be used whenever multiple web servers must be accessible via a single public IP address. The web servers listen on different ports in the same machine, with the same local IP address or, possibly, on different machines and different local IP addresses altogether. The reverse proxy analyses each incoming call and delivers it to the right server within the local area network.

http://en.wikipedia.org/wiki/Reverse_proxy

关于apache - 基于完整域名重新路由http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296769/

相关文章:

java - 如何使用 apache POI 在 .docx 文件中的表格之间添加段落或文本

tomcat - Log4j2 与 tomcat、通用和 webapp 类加载器

spring - 使用命令行(maven、Tomcat、spring、hibernate)从头开始创建 JEE 项目

php - apache mod_rewrite 中的奇怪行为

node.js - NodeJS Express 和 Apache 在同一服务器上

java - 以编程方式创建文件夹以及使用 java 将内容保存到该位置的权限

angular - @Input 与 router.navigate angular4

在 tomcat 容器中具有多个 Web 应用程序的 Spring Boot 执行器引发 javax.management.InstanceAlreadyExistsException 异常

mysql - 内容系统中的硬编码 URL vs 嵌套集 vs 组合

asp.net-mvc - 默认情况下不重定向到 Controller 的索引操作方法