5

我正在尝试在以 Nginx 为前端的 tomcat 服务器上部署一个 Web 应用程序。我遇到的问题是我的jsp页面中的标签打印出“不正确”(从tomcat的角度来看是正确的)上下文路径。

我在 tomcat 上的 Web 应用程序部署在上下文路径:/webApp1 上,tomcat 在端口 8080 上运行。因此可以通过http://localhost:8080/webApp1访问 Web 应用程序

我的 nginx 配置为 proxy_pass 如下:

location / {
    http://localhost:8080/webApp1;
}

使用此配置,Web 应用程序应该使用 url http://localhost

这仅适用于主页文本。主页加载成功,但主页上的所有链接都以 /webApp1 为前缀,因为 tomcat 认为它正在自行运行,因此输出上下文路径作为所有链接的前缀。

以前有没有人解决过这个问题。

非常感谢所有答案。

z。

4

1 回答 1

4

在花了很多时间后,我设法解决了这个问题。

nginx HttpSubsModule有一个第 3 方模块,它允许您替换响应正文中的字符串(例如 html)。

所以问题可以通过以下方式解决:

location / {
    http://localhost:8080/webApp1;
    subs_filter_types text/html;
    subs_filter '/webApp1' '';
}

它将从 html 响应中删除所有上下文“/webApp1”。

希望这对遇到此问题的其他人也有帮助。

z。

于 2012-05-05T06:18:13.100 回答