我正在尝试在带有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认为它本身正在运行,因此输出contextpath作为所有链接的前缀。

有没有人解决这个问题。

非常感谢所有答案。

z。

最佳答案

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

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

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

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


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

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

z。

09-26 23:01