The Web Server Nightmare Before H2PushPriority.

Update information      Edit(Jun.18)

   Actually, Cygwin has libev and nghttp2 packages now. So, you can use h2load and nghttp features even if you don’t build nghttp2 by yourself. Nevertheless, if youl build nghttp2 on Cygwin, you need to build the Jansson and the spdylay before building it because Cygwin doesn’t have their packages. But, according to the current trend, I think you don’t need the spdylay package. (2016.6.18)
—————————————————————————————————————————————————
   Yes, the title is just a word play from one of Tim Burton works (´ϖ`).

   On February 29, my server was down from about 0:00 to about 20:30 because of hardware malfunction. Last Sunday, February 28, I was trying hard for H2PushPriority which is one of new directives of Module mod_http2. To enable this feature is very easy, but to tune it up is difficult for me.

   I thought my server was down because the configuration for this directive gave heavy lord to the server, in fact, it was from the heavy dust of the CPU fan ha-ha. Anyway that was a nightmare. I posted an announcement about the server down to o6asan’s BBS and o6asan の掲示板 and went to bed.

   One day later, fortunately the server was back after cleaning CPU fan and heatsink and replacing CMOS battery. It was the Monday evening as I couldn’t take care of the server machine until 18:00 because I had to go out to do something. Thanks a lot, FHさん and juneさん。

   By the way, now about Server Push. I added the following lines to Apache’s ssl.conf.
   H2PushPriority text/css before
   H2PushPriority application/javascript interleaved
   Also I added the following lines to DocumentRoot .htaccess file. These css and js files Google PageSpeed Insights told me I should optimize or remove them.
   Header add Link "</wp-content/~~/lightbox.min.css>;rel=preload"
   Header add Link "</wp-content/~~/responsive.css>;rel=preload"
   Header add Link "</wp-content/~~/icofont.css>;rel=preload"
   Header add Link "</wp-content/~~/jetpack.css>;rel=preload"
   Header add Link "</wp-content/~~/jquery.flexslider-min.js>;rel=preload"
   Header add Link "</wp-content/~~/tinynav.min.js>;rel=preload"
   Header add Link "</wp-content/~~/modernizr.min.js>;rel=preload"
   Header add Link "</wp-content/~~/skip-link-focus-fix.js>;rel=preload"
   Header add Link "</wp-content/~~/wp-lightbox-2.min.js>;rel=preload"
   Header add Link "</wp-content/~~/frontend.js>;rel=preload"
   Header add Link "</wp-content/~~/jquery.colorbox.js>;rel=preload"
   Header add Link "</wp-includes/~~/jquery-migrate.min.js>;rel=preload"
   Header add Link "</wp-content/~~/jquery.selection.js>;rel=preload"
   Header add Link "</wp-content/~~/style.css>;rel=preload"
   Header add Link "</wp-includes/~~/wp-embed.min.js>;rel=preload"
   Header add Link "</wp-content/~~/style.js>;rel=preload"
   Header add Link "</wp-content/~~/jquery.atd.textarea.js>;rel=preload"
   Header add Link "</wp-includes/~~/jquery.js>;rel=preload"
   Header add Link "</wp-content/~~/genericons.css>;rel=preload"

   But this configuration was not good. I think this gives heavy load to the server at the first access of each visitor because it seems to make concatenated files from individual CSS files. I felt First Paint was very slow when I accessed my site.

   At the Server Push, are the pushing order and file types important??? I’ve not understood about them though I saw Processing Model, yet. You can know how Server Push works by nghttp -v or nghttp -ans commands. If you want to use it on Windows OS and don’t have the package, download from here (x86, x64). The x86 package contents the following files and cyggcc_s-1.dll, and the x64 does the following files and cyggcc_s-seh-1.dll:

cygcrypto-1.0.0.dll
cygev-4.dll
cygiconv-2.dll
cygjansson-4.dll
cyglzma-5.dll
cygnghttp2-14.dll
cygssl-1.0.0.dll
cygstdc++-6.dll
cygwin1.dll
cygxml2-2.dll
cygz.dll
nghttp.exe

   After all, I rolled back my sever configuration about H2PushPriority.

[Add.]   Today, Steffen released a new Apache 2.4.18 which was built with OpenSSL1.0.2g, so I updated my Apache because of OpenSSL Security Advisory [1st March 2016].

[Add.2]   Yesterday, May 3, they released PHP7.0.4 and I updated to it. ChangeLog. I updated phpMyAdmin to 4.5.5.1 at this opportunity. Its ChangeLog. In the ChangeLog, they mentioned ‘Vulnerability allowing man-in-the-middle attack on API call to GitHub.’ Bugger me! Nothing can be better for us than to update it early.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.