Apakah Nginx mendukung ALPN?
Solusi cepat untuk tahu apakah dari Nginx yang terinstall apakah sudah bisa menggunakan ALPN (Application Layer Negotiation Protocol) setelah mengaktifkan HTTPS dan akan mencoba HTTP/2. Ya karena ini syaratnya supaya HTTP/2 bisa digunakan jadi wajib tahu apa kriterianya apabila Nginx yang anda pakai asalnya dari compile source code.
Syarat pertama adalah versi OpenSSL yang digunakan untuk compile web server Nginx adalah 1.0.2. Anda bisa mengeceknya dengan perintah dibawah:
openssl version
OpenSSL 1.0.2j 26 Sep 2016
Kedua tentu saja Nginx telah dicompile OpenSSL diatas (atau lebih lama/baru asalkan 1.0.2):
nginx -V
nginx version: nginx/1.10.0
built with OpenSSL 1.0.2h 3 May 2016 (running with OpenSSL 1.0.2j 26 Sep 2016)
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC' --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-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-threads --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-dav-ext-module --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-http-push --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/nginx-development-kit --add-module=/usr/src/packages/BUILD/debian/modules/set-misc-nginx-module
Jadi kalau anda compile from source ya harus build dengan versi OpenSSL yang tepat. Kalau ternyata belum memenuhi syarat silahkan anda compile ulang dengan syarat yang tepat atau update apabila asalnya dari instalasi repository.
Semuanya sudah ada? Tahu darimana kalau ALPN sudah bekerja? Cek pakai tool ini saja: https://tools.keycdn.com/http2-test