HTTP/2 Push Nginx module not installed?


#1

Hi

Doesn’t the ee 3.8 nginx update adds HTTP/2 push support?


#2

HTTP/2 Push is one thing.

Push notifications is another totally different.

Which do you want?


#3

HTTP/2 push. I was too automatic. I don’t have the Nginx preload module installed


#4

Did you manage to install the Nginx Preload module. If you dont mind, would you mind sharing your installation steps?


#5
  1. No need. It’s installed with the ee nginx upgrade
  2. However, it seems that the openSSL version of nginx in the ee installation isn’t high enough (or isn’t upgraded) so http2 is not activated in my case
  3. You can recompile nginx yourself actually, if you want. I don’t want to mess with it right now in production

#6

Odd. I am running Ubuntu 16.04. With latest updates (updated 20min ago). Running NGINX 1.14 and openssl 1.1.0. Server is serving HTTP2.

EE V3.8.1

Want to configure PUSH or see if its configured.


#7

You can see it in chrome dev tools. And there are instructions on ee tutorials

Can you link to your site?


#8

Also 1.1.0 is bigger than 1.0.2


#9

Hello @treelicker,

EE 3.8 support HTTP/2 push, I have tried with the new nginx v1.14.0 package and default nginx configuration, and HTTP/2 push is working properly.

But you have to configure list all static assets you want to push in your nginx vhost configuration. For example :

server {


    server_name youdomain.tld   www.youdomain.tld;


    access_log /var/log/nginx/youdomain.tld.access.log ;
    error_log /var/log/nginx/youdomain.tld.error.log;


    root /var/www/youdomain.tld/htdocs;



    index  index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
        http2_push /bootstrap.min.css;
        http2_push /dashboard.css;
    }



    include common/locations.conf;
    include /var/www/youdomain.tld/conf/nginx/*.conf;
}

Nginx built with old 1.0.1 Openssl
#10
  1. In my case, even HTTP/2 (without push) is not working. I remembered it was working, but not sure

  2. I did as the instructions say before, that’s how I saw that HTTP/2 not working on my side

  3. Can you please check the OpenSSL version of Nginx in your case, please?


#11

In my case, Nginx was built with OpenSSL 1.02g :

nginx version: nginx/1.14.0 (EasyEngine)
built with OpenSSL 1.0.2g-fips  1 Mar 2016 (running with OpenSSL 1.0.2g  1 Mar 2016)
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --add-module=/usr/src/packages/BUILD/debian/modules/headers-more-nginx-module --add-module=/usr/src/packages/BUILD/debian/modules/nginx-auth-pam --add-module=/usr/src/packages/BUILD/debian/modules/nginx-cache-purge --add-module=/usr/src/packages/BUILD/debian/modules/nginx-echo --add-module=/usr/src/packages/BUILD/debian/modules/ngx-fancyindex --add-module=/usr/src/packages/BUILD/debian/modules/nginx-lua --add-module=/usr/src/packages/BUILD/debian/modules/nginx-upload-progress --add-module=/usr/src/packages/BUILD/debian/modules/nginx-upstream-fair --add-module=/usr/src/packages/BUILD/debian/modules/ngx_http_substitutions_filter_module --add-module=/usr/src/packages/BUILD/debian/modules/memc-nginx-module --add-module=/usr/src/packages/BUILD/debian/modules/srcache-nginx-module --add-module=/usr/src/packages/BUILD/debian/modules/HttpRedisModule --add-module=/usr/src/packages/BUILD/debian/modules/redis2-nginx-module --add-module=/usr/src/packages/BUILD/debian/modules/ngx_devel_kit --add-module=/usr/src/packages/BUILD/debian/modules/set-misc-nginx-module

#12

That’s not my case. Perhaps something with Debian? or maybe the upgrade process doesn’t update the built-in openssl?

Seems like I’ll have to recompile it myself


#13

Openssl 1.0.1t is the newest version available from debian repository

https://packages.debian.org/en/jessie/openssl


#14

Thanks. It’s not enough then

I’m trying to compile nginx with the same configuration as EE, but it seems that some modules are missing some external libraries, like lua library, pam lib and more

Does EE download them to some location or simply skips those?

If it’s too much, I understand, I just trying to figure out what’s missing


#15

Yes, you have to download each nginx modules to be able to compile Nginx.
Otherwise you can use my bash script to compile Nginx, it’s almost the same the default nginx-ee with some additional modules and tweaks :


#16

I have all the nginx modules, they come with the EE files. But it seems that it’s not enough, because some of them require some other stuff to be installed on the host.

I’ll try your script perhaps

Thanks


#17

There isn’t any nginx module stored in the easyengine repository, the script used to build nginx-ee is available here :


#18

Thanks

There are modules in the file nginx_1.14.0-1ppa~stable.debian.tar.xz here http://download.opensuse.org/repositories/home:/rtCamp:/EasyEngine/Debian_8.0/

But perhaps that’s not enough

I’ll try and see


#19

@treelicker Did it work?

I couldn’t.

I’ve tried using Cloudflare HTTP / 2 Push.

But it did not work. :disappointed_relieved:


#20

AFAIK Cloudflare only enables push for Enterprise customers, not in free or low cost plans.