提问者:小点点

以 Nginx 作为反向代理的 tomcat Web 应用程序的上下文路径


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

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

我的nginx配置为proxy_pass,如下所示:

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

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

这只适用于主页文本。主页加载成功,但是主页上的所有链接都带有前缀/webApp1,因为tomcat认为它是自己运行的,因此输出contextpath作为所有链接的前缀。

以前有人修好过这个吗?

非常感谢所有答案。

z.


共1个答案

匿名用户

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

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

因此,问题可以通过以下方式解决:

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

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

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

z.