我正在尝试在以 Nginx 为前端的 tomcat 服务器上部署一个 Web 应用程序。 我遇到的问题是我的 jsp 页面中的标记打印出“不正确”(从 tomcat 的角度来看是正确的)上下文路径。
我在 tomcat 上的 Web 应用程序部署在上下文路径:/webApp1 中,tomcat 在端口 8080 上运行。 因此可以通过 http://localhost:8080/webApp1 访问 Web 应用程序
我的nginx配置为proxy_pass如下:
location / {
http://localhost:8080/webApp1;
}
使用此配置,网络应用程序应该使用 url http://localhost
这仅适用于主页文本。主页加载成功,但主页上的所有链接都有/webApp1 前缀,因为 tomcat 认为它正在自行运行,因此输出上下文路径作为所有链接的前缀。
以前有没有人解决过这个问题。
非常感谢所有答案。
z.
最佳答案
我花了很多时间解决了这个问题。
nginx 有一个第三方模块 HttpSubsModule ,它允许您替换响应正文中的字符串(例如 html)。
因此可以通过以下方式解决问题:
location / {
http://localhost:8080/webApp1;
subs_filter_types text/html;
subs_filter '/webApp1' '';
}
它将从 html 响应中删除所有上下文 '/webApp1'。
希望这对遇到此问题的其他人也有帮助。
z.
关于jsp - 以 Nginx 作为反向代理的 tomcat Web 应用程序前端的上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10429487/