【发布时间】:2010-12-03 18:56:27
【问题描述】:
当 GWT 在反向代理后面时,我遇到了这个问题。后端应用程序部署在上下文中 - 我们称之为 /context。
当我直接点击 GWT 应用程序时,它运行良好:
我可以在它前面配置一个反向代理。这是我的 nginx 示例:
上游后端{ 服务器 127.0.0.1:8080; } ... 地点 / { proxy_pass http://backend/context/; }但是,当我运行反向代理时,GWT 会感到困惑,说:
2009-10-04 14:05:41.140:/:WARN: Login: ERROR: the serialization policy file '/C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc' was not found;您是否忘记将其包含在此部署中? 2009-10-04 14:05:41.140:/:WARN:登录:警告:无法获取模块“https://hostname:444/”的序列化策略“C7F5ECA5E3C10B453290DE47D3BE0F0E”;将使用与 1.3.3 兼容的旧版序列化策略。因此,您可能会遇到 SerializationExceptions。 2009-10-04 14:05:41.292:/:WARN: StoryService: 错误: 未找到序列化策略文件“/0445C2D48AEF2FB8CB70C4D4A7849D88.gwt.rpc”;您是否忘记将其包含在此部署中? 2009-10-04 14:05:41.292:/:WARN: StoryService: WARNING: 无法获取模块“https://hostname:444/”的序列化策略“0445C2D48AEF2FB8CB70C4D4A7849D88”;将使用与 1.3.3 兼容的旧版序列化策略。因此,您可能会遇到 SerializationExceptions。换句话说,GWT 没有得到它需要在 /context/ 之前查找 C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc 的词,但只有在请求通过代理到达时。一种解决方法是将上下文添加到网站的 url:
位置/上下文/ { proxy_pass http://backend/context/; }但这意味着上下文现在是用户看到的 url 的一部分,这很丑。
有人知道在这种情况下如何让 GWT 开心吗?
软件版本:
GWT - 1.7.0(与 1.7.1 相同的问题)
Jetty - 6.1.21(但在tomcat下也存在同样的问题)
nginx - 0.7.62(在 apache 2.x 下同样的问题)
我使用DonsProxy查看了代理和后端之间的流量,但没有什么值得注意的。
【问题讨论】:
标签: gwt reverse-proxy