You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by bu...@dakosy.de on 2017/08/29 09:07:31 UTC

[users@httpd] Problems with Http11NioProtocol and proxy server

Hi,

we've build a web application with JSF 2.1 and RichFaces 4.5.13.Final 
running on JBoss EAP 6.4.12. We're also using a Apache HTTP server 2.4.7 
as a HTTPS/WSS proxy to access the application for customers.

After we've changed the EAP http connector to 
"org.apache.coyote.http11.Http11NioProtocol" (for using websockets/push), 
ajax requests are often answered by HTTP 400 (Bad Request) or HTTP 500 
(Bad Gateway).

We're switched back to the EAP http connector "HTTP/1.1" and everything is 
working again as expected.

If we're accessing the EAP directly (not via proxy) there is also no 
problem. It looks like that there is a problem using Http11NioProtocol 
with Apache HTTP server as a proxy.

Is there anyone who run into the same problem or has an idea how we can 
solove it?

Thanks & best regards
Marco

[users@httpd] Antwort: Re: [users@httpd] Problems with Http11NioProtocol and proxy server

Posted by bu...@dakosy.de.
Hi Luca,

1) there is no error in error_log during that time. Maybe we need to 
change the log level?

2) In this example it's a post request to upload a file. It's the same 
request, sometimes it's working without any errors (HTTP 200) and 
sometimes an error occurs (HTTP 400 or HTTP 500).

3) Below you find the proxy config:

<VirtualHost x.x.x.x:80>
    ServerName          example.com

    DocumentRoot        /var/www/docs/empty

    RedirectMatch       .*$     https://example.com
</VirtualHost>

<VirtualHost x.x.x.x:443>
    ServerName                  example.com

    DocumentRoot                /var/www/docs/empty

    SSLEngine                   on
    SSLCipherSuite 
EECDH:EDH:!RC4!DES!3DES!DES-CBC3-SHA!EDH-RSA-DES-CBC3-SHA!ECDHE-RSA-DES-CBC3-SHA
    Header                      always set Strict-Transport-Security 
"max-age=31556926"

    SSLCertificateFile          "/etc/apache2/ssl/certs/example.crt"
    SSLCertificateKeyFile       "/etc/apache2/ssl/keys/example.key"
    SSLCertificateChainFile     "/etc/apache2/ssl/certs/example-ca.crt"

    ProxyPreserveHost On

    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]
    RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+ [OR]
    RewriteCond %{HTTP:Request-Range} 
([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
    RewriteCond %{REQUEST_METHOD} ^OPTIONS
    RewriteRule .* - [F]
    RewriteCond %{HTTP:Connection} Upgrade [NC]
    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteRule /(.*) ws://y.y.y.y:8080/$1 [P,L]

    BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

    ProxyRequests Off

    ProxyPass           /jmx-console    !
    ProxyPass           /web-console    !

    AddOutputFilterByType DEFLATE text/html text/xml text/css 
text/javascript application/x-javascript application/javascript

    ProxyPass           /               http://y.y.y.y:8080/
    ProxyPassReverse    /               http://y.y.y.y:8080/
</VirtualHost>

4) In case of HTTP 400/HTTP 500 the request is not reaching the access.log 
of the EAP/Tomact.

Thanks & best regards
Marco



Von:    Luca Toscano <to...@gmail.com>
An:     users@httpd.apache.org
Datum:  31.08.2017 13:44
Betreff:        Re: [users@httpd] Problems with Http11NioProtocol and 
proxy server



Hi Marco,

2017-08-29 11:07 GMT+02:00 <bu...@dakosy.de>:
Hi, 

we've build a web application with JSF 2.1 and RichFaces 4.5.13.Final 
running on JBoss EAP 6.4.12. We're also using a Apache HTTP server 2.4.7 
as a HTTPS/WSS proxy to access the application for customers. 

After we've changed the EAP http connector to 
"org.apache.coyote.http11.Http11NioProtocol" (for using websockets/push), 
ajax requests are often answered by HTTP 400 (Bad Request) or HTTP 500 
(Bad Gateway). 

We're switched back to the EAP http connector "HTTP/1.1" and everything is 
working again as expected. 

If we're accessing the EAP directly (not via proxy) there is also no 
problem. It looks like that there is a problem using Http11NioProtocol 
with Apache HTTP server as a proxy. 

Is there anyone who run into the same problem or has an idea how we can 
solove it? 

We'd need to know a couple of things to help:

1) Is there any specific error in the httpd error_log that gets logged 
when the 400/500s are returned?
2) What kind of requests are you issuing to httpd when you get a 400 and a 
500? Are they different?
3) Can you share your configuration? (at least the one for the proxy)
4) Do you find anything useful in the Tomcat logs when httpd returns the 
errors?

Luca 


Re: [users@httpd] Problems with Http11NioProtocol and proxy server

Posted by Luca Toscano <to...@gmail.com>.
Hi Marco,

2017-08-29 11:07 GMT+02:00 <bu...@dakosy.de>:

> Hi,
>
> we've build a web application with JSF 2.1 and RichFaces 4.5.13.Final
> running on JBoss EAP 6.4.12. We're also using a Apache HTTP server 2.4.7 as
> a HTTPS/WSS proxy to access the application for customers.
>
> After we've changed the EAP http connector to "org.apache.coyote.http11.Http11NioProtocol"
> (for using websockets/push), ajax requests are often answered by HTTP 400
> (Bad Request) or HTTP 500 (Bad Gateway).
>
> We're switched back to the EAP http connector "HTTP/1.1" and everything is
> working again as expected.
>
> If we're accessing the EAP directly (not via proxy) there is also no
> problem. It looks like that there is a problem using Http11NioProtocol with
> Apache HTTP server as a proxy.
>
> Is there anyone who run into the same problem or has an idea how we can
> solove it?
>

We'd need to know a couple of things to help:

1) Is there any specific error in the httpd error_log that gets logged when
the 400/500s are returned?
2) What kind of requests are you issuing to httpd when you get a 400 and a
500? Are they different?
3) Can you share your configuration? (at least the one for the proxy)
4) Do you find anything useful in the Tomcat logs when httpd returns the
errors?

Luca