У меня проблема с GWT, когда она находится за обратным прокси. Бэкэнд-приложение развертывается в контексте - назовем его/context.Проблема с GWT за обратным прокси - либо nginx, либо apache
приложение GWT отлично работает, когда я ударил его прямо:
можно настроить обратный прокси перед него. Вот мой Nginx пример:
upstream backend { server 127.0.0.1:8080; } ... location/{ 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; 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.
Другими словами, GWT не получает слово, которое он должен prepend/context/hen искать C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc, но только тогда, когда запрос поступает через прокси-сервер. Чтобы обойти проблему, чтобы добавить контекст в URL для веб-сайта:
location /context/ { proxy_pass http://backend/context/; }
, но это означает, что контекст является частью URL, который видит пользователь, и это некрасиво.
Кто-нибудь знает, как сделать GWT счастливым в этом случае?
Software версии:
GWT - 1.7.0 (та же проблема с 1.7.1)
Jetty - 6.1.21 (но та же проблема существовала под котом)
Nginx - 0.7.62 (та же проблема при апача 2.x)
Я просмотрел трафик между прокси-сервером и сервером, используя DonsProxy, но там ничего не примечательно.
В краткосрочной перспективе мне не обязательно нужны вещи, но разработчик приложений устанавливает по умолчанию модули с контекстом, и я могу выделить отдельные части в других модулях. Исправление источника (до GWT) звучит как правильный ответ, так как кажется, что все настроено правильно. –
Как я вижу это, у вас есть грязная проблема, и другие люди, вероятно, выиграют от вашего исправления, поэтому патч будет чрезвычайно ценным. Если вы идете по этому маршруту, обязательно разместите файл исправлений на Gist (http://gist.github.com/) или аналогичный, и связать этот вопрос с ним, если патч не будет принят немедленно. –