Hi,
We have a little complex environment where we use a Vaadin application. We have real difficulties using PUSH. Could you please help us? Thanks.
Here are the details.
| | | | | | | | | |
| Firefox | - (http) → | Load balancer | → | Httpd | - (mod_jk and kerberos auth) → | tomcat | → | Vaadin app |
| 17/34 | | | | 2.2 | (mod_proxy_wstunnel) | 8.0.15 | | 7.3.8/7.4.0 |
|| || || || |_____|
When using PUSH with WEBSOCKET, and Vaadin 7.3.8, it usually works, except when the first Websocket connexion could not be made. If the latter, the application is not usable (red spinning) and a refresh in Firefox is necessary.
When using PUSH with WEBSOCKET, and Vaadin 7.4.0, it seems to work, except a few seconds, the application is not usable (red spinning) and a refresh in Firefox is necessary. The error in Firefox is that “The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.”
When using PUSH with STREAMING/LONG POLLING with either Vaadin 7.3.8 or 7.4.0, Firefox keeps requesting "[HTTP/1.1 426 Upgrade Required 6ms]
". Still red spinning.
I believe the proxy is responsible for all these errors, but we can’t go without it. Firstly, the mod_proxy_wstunnel is a backport I compiled from httpd 2.4 because it is not provided in 2.2. Secondly, here is my httpd config related to the proxy.
<VirtualHost *:80>
ServerName portalserver.domain
ServerAlias *.portalserver.domain portalserver *.portalserver
# For WebSocket.
ProxyPreserveHost On
ProxyPass /portalserver/PUSH/ ws://127.0.0.1:9080/portalserver/PUSH/ smax=100 acquire=1000 connectiontimeout=10 ping=3 retry=0 timeout=3
ProxyPassReverse /portalserver/PUSH/ ws://127.0.0.1:9080/portalserver/PUSH/ retry=0
RewriteEngine On
# Redirection from hostname to tomcat web application.
RewriteRule ^/$ http://portalserver.domain/portalserver [NE,R,L]
<Location "/portalserver">
# Kerberos.
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate on
KrbMethodK5Passwd off
KrbServiceName HTTP
KrbAuthRealms DOMAIN
Krb5KeyTab /etc/httpd/conf/portalserver.keytab
KrbLocalUserMapping on
KrbSaveCredentials on
Require valid-user
</Location>
# AJP.
JkMount /portalserver* worker1
</VirtualHost>