In this release we update NGINX to the brand new 1.13.9 version which adds HTTP/2 Server Push support. Server Push enables you to send parts of your site to the browser before it even asked for it, which if used correctly can boost your site’s performance.

HTTP/2 Server Push on Hypernode

Last week the new 1.13.9 release was tagged which contains the newly added functionality. After recompiling our packaging and testing, we have added the new version to our internal repositories and it will be gradually deployed to all Hypernodes over the course of this week.

To check if your Hypernode has already been updated to the new version you can run this command:


$ dpkg -l | grep nginx-common | awk '{print$3}'

How to use Server Push with Magento

HTTP/2 has been available on Hypernode for a while now for sites with SSL but unlike the Apache HTTP Server, Server Push did not exist yet in NGINX. Server Push can be used in Magento by use of external modules like Yireo ServerPush.

You can also configure asset pushing from your NGINX config. For example:

cat << EOF > /data/weg/nginx/server.serverpush
location = /test.html {
    http2_push /hypernode.png;
}
EOF

After this NGINX configuration has been loaded by the NGINX config reloader it will push hypernode.png from the webroot when test.html is loaded. You can check this with nghttp from the nghttp2-client package on Debian derived systems.


# nghttp -ans https://.hypernode.io/test.html
***** Statistics *****

Request timing:
  responseEnd: the  time  when  last  byte of  response  was  received
               relative to connectEnd
 requestStart: the time  just before  first byte  of request  was sent
               relative  to connectEnd.   If  '*' is  shown, this  was
               pushed by server.
      process: responseEnd - requestStart
         code: HTTP status code
         size: number  of  bytes  received as  response  body  without
               inflation.
          URI: request URI

see http://www.w3.org/TR/resource-timing/#processing-model

sorted by 'complete'

id  responseEnd requestStart  process code size request path
 13     +1.84ms       +157us   1.68ms  200  106 /test.html
  2    +15.57ms *     +658us  14.91ms  200  20K /hypernode.png

 

For the complete NGINX changelog click here. The previous version on Hypernode was 1.13.5.