我有一个在 nginx 后面运行的 struts2 web 应用程序模块。该应用程序在专用网络中运行,但我们的客户端请求通过互联网访问,因此为它打开了一个端口。
我的问题如下。我执行了一些操作,然后使用 redirectAction 转发到另一个标准答案操作。这是通过这种方式完成的,以便在 json 中编写标准答案的单个操作。不幸的是,重定向操作的响应 header 中的位置已清除端口 - 我猜 nginx 会这样做 - 因此重定向未命中,因为它缺少端口。
我的 nginx 管理员说他不能触及特定模块的 nginx 重定向,要么全有要么全无。
有谁知道是否有办法让 struts redirectAction 在相对路径而不是绝对路径上工作?我唯一的猜测,也是我将要尝试的,是创建我的 redirectAction 实现的自定义变体 - org.apache.struts2.dispatcher.ServletActionRedirectResult -,但我想知道是否有更简单的方法来实现相同的结果。
最佳答案
不是为 tomcat 打开特定端口,而是应该将对特定域的请求在内部转发到运行在其他端口的 tomcat。
我们的服务器针对 tomcat 的 apache infront 进行了此配置,为此我们使用了 mod_jk
和 mod_proxy
。
谷歌搜索这些主题将进一步描述如何实现这一目标。因为它们本身就是相当大的主题。
可能的解决方案:
关于java - 使 Struts2 redirectAction 使用相对路径而不是绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20566511/