Untuk kesederhanaan tulisan ini, saya tidak membahas konfigurasi Naxsi dan NGINX Cache Purge. Nanti bila saya tidak malas, saya akan tulis. Ya, silakan ingatkan saya saja kalau saya lupa. 🙂
Pendahuluan
Teman saya lebih suka melihat dokumentasi di blog saya dari pada Repositori Pengetahuan internal. Ya, sudah, makanya ini saya tulis di blog. Lumayanlah, untuk pengetahuan khalayak ramai juga.
Saat ini Google sedang menggadang-gadang SPDY. Chrome, Firefox, dan banyak peramban modern lainnya sudah mengerti tentang SPDY. Protokol ini diharapkan bisa menghasilkan koneksi yang aman namun lebih cepat dari pada koneksi TLS/SSL (HTTPS) biasa.
Menurut Wikipedia, SPDY menggunakan ekstensi NPN TLS/SSL dari OpenSSL versi 1.x. SPDY yang terbaru sekarang adalah versi 3.1 (SPDY/3.1). Versi 4 sedang masuk tahap alfa dan sejalan dengan HTTP 2.0.
Celakanya, NGINX yang dipaketkan oleh Debian saat ini masih menggunakan SPDY/2.0. Padahal, tak berapa lama lagi versi ini tak didukung oleh peramban. SPDY/3.1 didukung oleh NGINX 1.5.10+.
Hmm…. Saatnya membuka terminal!
Berkas-berkas yang dibutuhkan
Ada tiga paket yang dibutuhkan, NGINX (saat penulisan versi 1.5.12), Naxsi (versi GIT), dan NGINX Cache Purge (saat penulisan versi 2.1). Sebenarnya Naxsi dan NGINX Cache Purge tidak diperlukan. Namun, pada situs yang saya kelola, saya menggunakan kedua komponen tersebut. Untuk Anda mungkin kedua komponen tersebut tidak perlu.
NGINX
$ wget http://nginx.org/download/nginx-1.5.12.tar.gz $ tar xvfz nginx-1.5.12.tar.gz
NGINX Cache Purge
$ wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz $ tar xvfz ngx_cache_purge-2.1.tar.gz
Naxsi
Kalau belum punya GIT, pasang dulu:
$ sudo apt-get install git
Baru lakukan ini:
$ git clone https://github.com/nbs-system/naxsi.git/
Pemasangan
Unduh dan pasang paket-paket yang dibutuhkan sebelum mengompilasi dan memasang NGINX.
Memasang Paket-paket yang Dibutuhkan
Kalau paling gampang, untuk paket-paket yang dibutuhkan, cukup pasang:
$ sudo apt-get install build-dep nginx
Namun, ini memasang banyak sekali paket yang tak perlu. Cukup lakukan ini saja:
$ sudo apt-get install build-essential libssl-dev libpcre3-dev libgeoip-dev
Memasang NGINX dan Teman-teman
Masuk ke direktori sumber NGINX:
$ cd nginx-1.5.12/
Lakukan tiga langkah buat:
$ CFLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer" ./configure --prefix=/opt/nginx \ --with-file-aio --with-ipv6 --with-pcre --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx \ --with-http_secure_link_module --with-http_random_index_module --with-http_ssl_module --with-http_realip_module \ --with-http_addition_module --with-http_sub_module --with-http_gzip_static_module --with-http_degradation_module \ --with-http_stub_status_module --with-http_geoip_module --with-http_spdy_module \ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --http-scgi-temp-path=/var/lib/nginx/scgi \ --add-module=../ngx_cache_purge-2.1 --add-module=../naxsi/naxsi_src/ $ CFLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer" make -j3 $ sudo CFLAGS="-O2 -pipe -march=native -mtune=native -fomit-frame-pointer" make install
Ya, sebagai seorang sysadmin, saya suka mengubah konfigurasi:
- Karena ini kompilasi, sekalian saja buat supaya binari yang dibuat disesuaikan dengan mesin yang dipakai (alami/native).
- Konfigurasi tempat berkas konfigurasi, log, dan soket disesuaikan dengan versi Debian.
- Kompilasi secara paralel dengan menggunakan 3 trit.
Konfigurasi
Setelah terpasang, konfigurasi “/etc/nginx/nginx.conf”. Atau kalau pada Debian, pada “/etc/nginx/sites-enabled/XXXX”, ganti XXXX dengan berkas virtual host Anda misalkan “default”. Tambahkan baris berikut pada blok server:
server { ... listen 443 ssl spdy; ... }
Lalu aktifkan TLS/SSL seperti biasa, contohnya:
ssl on; ssl_certificate /etc/nginx/ssl/certificate/server.crt; ssl_certificate_key /etc/nginx/ssl/certificate/server.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on;
Menyalakan Ulang NGINX
Setelah selesai, matikan NGINX bila sudah ada NGINX di peladen.
$ sudo invoke-rc.d nginx stop
Ubah skrip NGINX di Debian untuk mengarah kepada binari NGINX yang kita kompilasi:
$ sudo sed -i.bak 's/^DAEMON=.*/DAEMON=\/opt\/nginx\/sbin\/nginx/g' /etc/init.d/nginx
Mari nyalakan kembali:
$ sudo invoke-rc.d nginx start
Selesai.
Terakhir
Untuk mengecek apakah sudah benar, bisa dicek di http://spdycheck.org/
Contohnya:

Blog Mahasiswa UI supports SPDY
Semoga berhasil!