Cara mengaktifkan HTTP/2 pada Nginx

Langkah selanjutnya setelah memasang sertifikat SSL dan sudah dipastikan berjalan normal adalah mengaktifkan HTTP/2. Kalau di OpenLiteSpeed hal ini mudah sekali karena tinggal memberi centang saja pada opsinya. Sedangkan pada Nginx ada beberapa hal dulu yang harus dicek dan baru yakin bisa digunakan.

Jadi pada salah satu situs yang saya kelola sudah menggunakan HTTPS memanfaatkan Let’s Encrypt, saya agak lupa bagaimana dulu saya mensettingnya tapi ingin tahu apakah sudah memakai HTTP/2 untuk protokolnya. Langsung saja saya cek memakai curl:

curl --http2 nama_domain.com
curl: (1) Unsupported protocol

Dan jawabannya adalah belum. Haha. 😀

Langkah berikutnya memastikan kalau versi Nginx yang diinstall sudah mendukungnya, karena seingat saya baru ada di mainline 1.9.5 dan stable 1.10.0:

nginx -V
nginx version: nginx/1.10.0
built with OpenSSL 1.0.2h  3 May 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt=-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

Yup, ditemukan modul --with-http_v2_module sudah terpasang. Kesimpulannya saya dulu rajin atau memang dari repository asalnya sudah ada secara default. 😛

Berarti untuk mengaktifkan HTTP/2 pada Nginx sungguhlah mudah. Tinggal kita edit konfigurasi virtual host Nginx untuk nama domain tersebut. Tugas kita anda memodifikasi kode berikut listen 443 ssl; menjadi ini listen 443 ssl http2;, ya kita tinggal menambahkan saja intinya. Ini blok server{} untuk koneksi HTTPS saya:

    server  {
        listen 443 ssl http2;
        server_name   nama_domain.com;
        
        ssl on;
        ssl_certificate     /etc/letsencrypt/live/nama_domain.com/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/nama_domain.com/privkey.pem;

Adaptasikan dengan milik anda karena kondisinya belum tentu sama.

Setelah itu silahkan restart/reload Nginx dan selesai sudah. Tes apakah HTTP/2 sudah aktif dan bekerja.

One Comment

Tinggalkan Balasan ke Ahmad fatah Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *