id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,uname,nginx_version 808,Defining http2 without ssl leads to HTTP/1.1 client failure,LPardue@…,,"This issue probably relates to support of HTTP/2 over cleartext (h2c). Note that I have successfully tested HTTP/2 over TLS on this server. I have a simple server setup using an out of the box config, if I use a HTTP/1.1 client then I see what I would expect e.g: {{{ curl -v http://localhost/index.html * About to connect() to localhost port 80 (#0) * Trying ::1... * Connection refused * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) port 80 (#0) > GET /index.html HTTP/1.1 > User-Agent: curl/7.29.0 > Host: localhost > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.9.5 < Date: Fri, 09 Oct 2015 15:53:40 GMT < Content-Type: text/html < Content-Length: 612 < Last-Modified: Wed, 07 Oct 2015 10:41:07 GMT < Connection: keep-alive < ETag: ""5614f6c3-264"" < Accept-Ranges: bytes < ... * Connection #0 to host localhost left intact }}} If I add http2 to the config, e.g. {{{ server { listen 80 http2; server_name localhost; ... }}} Then I see this {{{ curl -v http://localhost/index.html * About to connect() to localhost port 80 (#0) * Trying ::1... * Connection refused * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) port 80 (#0) > GET /index.html HTTP/1.1 > User-Agent: curl/7.29.0 > Host: localhost > Accept: */* > * Connection #0 to host localhost left intact }}} Nothing is reported in the server logs. So my questions are: * Is h2c supported? * If not, why am I allowed to attempt such a configuration without some error/warnings. * If so, what am I doing incorrectly? Shouldn't a HTTP/1.1 client continue to work if it offers no upgrade header or ""prior knowledge"" magic? ",defect,closed,minor,,nginx-core,1.9.x,,http2,,Linux 3.10.0-123.9.3.el7.x86_64 #1 SMP Thu Nov 6 15:06:03 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux,"nginx version: nginx/1.9.5 "