使用 Apache/mod_proxy 重定向 URL 路径以转发到 tomcat servlet

发布于 2024-07-16 07:39:39 字数 465 浏览 9 评论 0原文

我目前有一个 tomcat servlet 1 在根目录下运行:

api1.myhost.com:8080/

我正在使用 mod_proxy 并简单地转发来自 api1.myhost.com 到此实例。 从今天开始,这一功能正在发挥作用。

我现在已经安装了第二个 servlet 2,它在同一个 tomcat 实例(相同的 IP 地址)下运行:

www.myhost.com:8080/servlet2

我希望对新 URL api2 的所有请求都转到第二个 servlet,这样:

< api2.myhost.com

现在被转发到第二个 servlet 实例。

我创建了一条 A 记录,使 api2.myhost.com 指向我的服务器 IP。 如何使 api2.myhost.com 转发到 www.myhost.com:8080/servlet2 ?

I currently have a tomcat servlet 1 running under the ROOT:

api1.myhost.com:8080/

I'm using mod_proxy and simply forwarding all requests from
api1.myhost.com to this instance. This is working as of today.

I now have installed a second servlet 2 which runs under the same instance of tomcat (same IP address):

www.myhost.com:8080/servlet2

I want all requests to a new URL api2 to go to that second servlet such that:

api2.myhost.com

now gets forwarded to the second servlet instance.

I've created an A record such that api2.myhost.com points to my server IP. How do you make api2.myhost.com forward to www.myhost.com:8080/servlet2 ?

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

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

发布评论

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

评论(1

羁客 2024-07-23 07:39:39

您需要创建两个 VirtualHost,其中一个指向第一个 Web 应用程序,另一个指向第二个。

<VirtualHost *:80>
    ServerName api1.myhost.com
    ProxyPass / http://api1.myhost.com:8080/
    ProxyPassReverse / http://api1.myhost.com:8080/
</VirtualHost>

<VirtualHost *:80>
        ServerName api2.myhost.com
        ProxyPass / http://www.myhost.com:8080/servlet2
        ProxyPassReverse / http://www.myhost.com:8080/servlet2
</VirtualHost>

请注意,由于 tomcat 上的路径与 apache 上的路径不同,因此您需要在应用程序中使用相对 URL。

You need to make two VirtualHost's with on pointing to the first webapp, the other to the second.

<VirtualHost *:80>
    ServerName api1.myhost.com
    ProxyPass / http://api1.myhost.com:8080/
    ProxyPassReverse / http://api1.myhost.com:8080/
</VirtualHost>

<VirtualHost *:80>
        ServerName api2.myhost.com
        ProxyPass / http://www.myhost.com:8080/servlet2
        ProxyPassReverse / http://www.myhost.com:8080/servlet2
</VirtualHost>

Note that since the path will be different on tomcat than on apache, you will need to use relative URLs in your application.

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