Проблема с GWT за обратным прокси-сервером - nginx или apache
Я изначально задавал этот вопрос на SO, но, возможно, SF - лучшее место для решения этого вопроса.
У меня эта проблема с GWT, когда он находится за обратным прокси. Бэкэнд-приложение разворачивается в контексте - давайте назовем его / context.
Приложение GWT отлично работает, когда я нажму его напрямую:
HTTP: // хост: 8080 / контекст /
Я могу настроить обратный прокси перед этим. Вот мой пример nginx:
верхний бэкэнд { сервер 127.0.0.1:8080; } ... место нахождения / { proxy_pass http://backend/context/; }
Но когда я запускаю обратный прокси-сервер, GWT запутывается, говоря:
2009-10-04 14: 05: 41.140: /: WARN: Логин: ОШИБКА: файл политики сериализации '/C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc' не найден; Вы забыли включить его в это развертывание? 2009-10-04 14:05:41.140:/:WARN: Логин: WARNING: Не удалось получить SerializationPolicy 'C7F5ECA5E3C10B453290DE47D3BE0F0E' для модуля 'https://hostname:444/'; будет использоваться устаревшая, совместимая с 1.3.3 политика сериализации. В результате могут возникать исключения SerializationException. 2009-10-04 14:05:41.292:/:WARN: StoryService: ОШИБКА: файл политики сериализации '/0445C2D48AEF2FB8CB70C4D4A7849D88.gwt.rpc' не найден; Вы забыли включить его в это развертывание? 2009-10-04 14:05:41.292:/:WARN: StoryService: WARNING: Не удалось получить SerializationPolicy '0445C2D48AEF2FB8CB70C4D4A7849D88' для модуля 'https://hostname:444/'; будет использоваться устаревшая, совместимая с 1.3.3 политика сериализации. В результате могут возникать исключения SerializationException.
Другими словами, GWT не получает слово, необходимое для добавления / context / затем поиска C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc, но только тогда, когда запрос приходит через прокси. Обходной путь должен добавить контекст к URL для веб-сайта:
местоположение / контекст / { proxy_pass http: // backend / context /; }
но это означает, что контекст теперь является частью URL, который видит пользователь, и это ужасно.
Кто-нибудь знает, как сделать GWT счастливым в этом случае?
Версии программного обеспечения:
GWT - 1.7.0 (та же проблема с 1.7.1)
Причал - 6.1.21 (но та же проблема существовала при tomcat)
nginx - 0.7.62 (та же проблема под apache 2.x)
Я подозреваю, что, возможно, GWT обнаруживает заголовок Referer и запутывается (есть ли у nginx способ отключить этот заголовок?) Или что есть разница, поскольку трафик между прокси и GWT/Jetty - HTTP/1.0 вместо HTTP/1.1.
1 ответ
Я думаю тебе надо
location /context/ {
proxy_pass http://backend/context/;
}
а затем использовать перезапись, чтобы убрать / контекстную часть из URL