title: Problem with GWT behind a reverse proxy - either nginx or apache
body: <p>I'm having this problem with GWT when it's behind a reverse proxy.  The backend app is deployed within a context - let's call it /context.</p>
  
  <p>The GWT app works fine when I hit it directly:</p>
  
  <p><a href="http://host:8080/context/" rel="noreferrer">http://host:8080/context/</a></p>
  
  <p>I can configure a reverse proxy in front it it.  Here's my nginx example:</p>
  
  <pre>
  upstream backend {
      server 127.0.0.1:8080;
  }
  
  ...
  
  location / {
     proxy_pass        http://backend/context/;
  }
  
  </pre>
  
  <p>But, when I run through the reverse proxy, GWT gets confused, saying:</p>
  
  <pre>
  2009-10-04 14:05:41.140:/:WARN:  Login: ERROR: The serialization policy file '/C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc' was not found; did you forget to include it in this deployment?
  2009-10-04 14:05:41.140:/:WARN:  Login: WARNING: Failed to get the SerializationPolicy 'C7F5ECA5E3C10B453290DE47D3BE0F0E' for module 'https://hostname:444/'; a legacy, 1.3.3 compatible, serialization policy will be used.  You may experience SerializationExceptions as a result.
  2009-10-04 14:05:41.292:/:WARN:  StoryService: ERROR: The serialization policy file '/0445C2D48AEF2FB8CB70C4D4A7849D88.gwt.rpc' was not found; did you forget to include it in this deployment?
  2009-10-04 14:05:41.292:/:WARN:  StoryService: WARNING: Failed to get the SerializationPolicy '0445C2D48AEF2FB8CB70C4D4A7849D88' for module 'https://hostname:444/'; a legacy, 1.3.3 compatible, serialization policy will be used.  You may experience SerializationExceptions as a result.
  </pre>
  
  <p>In other words, GWT isn't getting the word that it needs to prepend /context/ hen look for C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc, but only when the request comes throught proxy.  A workaround is to add the context to the url for the web site:</p>
  
  <pre>
  location /context/ {
      proxy_pass        http://backend/context/;
  }
  </pre>
  
  <p>but that means the context is now part of the url that the user sees, and that's ugly.</p>
  
  <p>Anybody know how to make GWT happy in this case?</p>
  
  <p>Software versions:<br>
  GWT - 1.7.0 (same problem with 1.7.1)<br>
  Jetty - 6.1.21 (but the same problem existed under tomcat)<br>
  nginx - 0.7.62 (same problem under apache 2.x)<br></p>
  
  <p>I've looked at the traffic between the proxy and the backend using <a href="http://donsproxy.sourceforge.net/" rel="noreferrer">DonsProxy</a>, but there's nothing noteworthy there.</p>