So Nginx released the mainline version 1.9.5 and then 1.9.6 with an experimental http/2 module. For those using spdy, the upgrade in itself should be simple, by simply replacing “spdy” with “http2” in the listen directive in the server configuration. The server will not start till this change is made.
Sadly, what should have been an occasion of great excitement and eager adoption after almost a year of anticipation has turned horribly wrong. Nginx 1.9.5 onwards, http/2 replaces spdy, which means, your server will serve http/2 only and not spdy. Non http/2 enabled users will get plain ssl. Considering that Opera Mini, Blackberry browser, Android browser and Internet Explorer (other than IE11 on Windows 10) don’t implement http/2 and increasing traffic is now mobile, I fail to see how serving the slowest version of your site to mobile browsers and a majority of users was a useful move for a webserver aiming to transform performance. Even Safari browser has http/2 support only in its latest version. That’s quite a chunk of the internet incapable of using the site at the speeds http/2 should be adopted for. Keeping spdy as a fallback would have allowed existing user experience to continue for many visitors. And that too for an experimental module. Server push – that would have added a serious speed boost for many is not implemented yet.
What is more, benchmarks currently show Nginx with spdy3.1 to be faster than Nginx with http/2. Talk of an upgrade that is a serious usability downgrade.
Not only does this effectively prevent me from touching http/2 on Nginx, it actually has me actively hunting for a frontend that will offer http/2 and spdy before offering plain ssl. Most likely nghttpx.
Oh the irony of needing a frontend proxy for a Nginx server because the server has upgraded to http/2. But sadly, given that only little over a third (38.2%) of the traffic in India is http/2 enabled, it is difficult to see how spdy support can be stopped by a webmaster with sites for Indians in the near future. I anticipate needing to support spdy for another year at least. Yes, I know Google will stop supporting spdy from Feb 2016, but those who don’t upgrade and other browsers and apps that aren’t http/2 capable will still need a way to be faster than raw ssl.
Talk of anticipation followed by a damn squib. I even found myself wondering whether Apache2 is worth checking out once more…. but more likely, I’m going to figure out nghttpx unless there is some indication that future upgrades will support spdy as well as http2 for a while.