子域代理将所有指向单个服务器的内容传递给

发布于 2024-12-20 17:25:36 字数 663 浏览 4 评论 0原文

我有 2 个应用程序托管在端口 8080 上的单个 apache tomcat 上 >

  • http://mydomain.com:8080/application1
  • http://mydomain.com:8080/application2

我想在它们前面运行一个 apache 代理具有以下行为 >

  • http://mydomain.com/* (apache2) -> http://mydomain.com:8080/application1/* (tomcat)
  • http://subdomain.mydomain.com/* (apache2) -> http://mydomain.com:8080/application2/* (tomcat)

我现在得到的最好的是两台具有不同IP的机器,并相应地路由域和子域。

理想情况下,我希望 apache 代理和 2 个应用程序位于同一台计算机上...

任何具有出色 DEVOps 技能的人都可以提供帮助吗?

I have 2 applications hosted on a single apache tomcat on port 8080
>

  • http://mydomain.com:8080/application1
  • http://mydomain.com:8080/application2

I would like to run an apache proxy in front of BOTH of them with the following behaviour
>

  • http://mydomain.com/* (apache2) -> http://mydomain.com:8080/application1/* (tomcat)
  • http://subdomain.mydomain.com/* (apache2) -> http://mydomain.com:8080/application2/* (tomcat)

The best I have got right now is 2 machines with different IPs and routing the domain and subdomains correspondingly.

Ideally I want the apache proxy and the 2 apps to be on the SAME machine...

Can anyone with kick arse DEVOps skills assist?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

〃温暖了心ぐ 2024-12-27 17:25:36

除了 @Jon Lin 的回答之外,还可以考虑使用 ProxyPassReverse,以防万一您的应用程序进行任何重定向。它使 Apache 能够正确响应 URL(有关 ProxyPassReverse 的更多信息)。它看起来像这样:

<VirtualHost subdomain.mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

<VirtualHost mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

我希望它有帮助。

In addition to @Jon Lin answer, consider using ProxyPassReverse also, just in case your app do any redirects. It makes Apache correct URL's on responses (More about ProxyPassReverse). It will look like that:

<VirtualHost subdomain.mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

<VirtualHost mydomain.com:80>
    ProxyPass / http://localhost:8080/application1/
    ProxyPassReverse / http://localhost:8080/application1/
</VirtualHost>

I hope it helps.

甜点 2024-12-27 17:25:36

mydomain.com (apache) 的虚拟主机配置中,您需要

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application1/$1

subdomain.mydomain.com (apache) 的虚拟主机配置中,您需要

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application2/$1

两个配置文件都应该打开同一台机器,甚至同一个文件。有关如何设置的一些示例,请参阅VirtualHost Examples

In the virtualhost config for mydomain.com (apache), you need

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application1/$1

In the virtualhost config for subdomain.mydomain.com (apache), you nede

ProxyPassMatch ^/(.*)$ http://mydomain.com:8080/application2/$1

Both config files should be on the same machine, and even the same file. See VirtualHost Examples for some examples on how this is setup.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文