Instalasi NginX sebagai Reverse Proxy dengan Hiawatha sebagai Backend


Seperti yang sudah diterangkan dalam intro di http://hendrowicaksono.multiply.com/journal/item/71/Instalasi_Hiawatha_Web_Server_PHP5_via_FastCGI_atau_PHP-FPM_dan_MySQL_di_Ubuntu_Server_10.04, salah satu alasan saya menggunakan Hiawatha adalah alasan keamanan. Tetapi saya juga tidak mau kehilangan Nginx yang sudah terbukti mantap dalam melayani konten statik.

Skenario yang akan digunakan dalam tulisan ini adalah:

  1. Menggunakan Nginx sebagai reverse proxy

  2. Menggunakan Nginx untuk konten statik

  3. Nginx dijalankan pada port standar HTTP (80) dan HTTPS (443)

  4. Hiawatha dijalankan pada port 8080 dan di set hanya menerima request HTTP dari local (127.0.0.1).

  5. Konten dinamis via PHP dilakukan oleh Hiawatha. Jadi Nginx akan meforward request ke file PHP ke Hiawatha.

Pertama lakukan instalasi Hiawatha seperti pada http://hendrowicaksono.multiply.com/journal/item/71/Instalasi_Hiawatha_Web_Server_PHP5_via_FastCGI_atau_PHP-FPM_dan_MySQL_di_Ubuntu_Server_10.04. Ingat HTTPS tidak diaktifkan karena akan dilakukan oleh Nginx.

Jangan lupa update sedikit /etc/hiawatha/hiawatha.conf agar hanya menerima dari IP lokal dengan pertimbangan sekuriti (IP Binding). Kira-kira jadinya seperti ini:

Binding {
    Port = 8080
    Interface = 127.0.0.1
}

Berikutnya adalah instalasi Nginx.

Rilis resmi Nginx pada paket resmi Ubuntu masih menggunakan versi yang lama. Untuk mendapatkan update paling baru paket Nginx ada di PPA Launchpad di https://launchpad.net/~nginx/. Untuk production, selalu gunakan versi stabil karena itu pilih https://launchpad.net/~nginx/+archive/stable. Untuk menambahkan paket PPA kedalam sistem Ubuntu:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx-extras

Catatan: terkadang masih ada bugs yang muncul terkait uninstall dan atau instalasi paket nginx dari PPA (bukan bugs di nginx nya loh ya). Silahkan mencari workaround yang sesuai. Yang saya lakukan antara lain:

  • instalasi aplikasi ppa-purge dari ppa:xorg-edgers/ppa

  • remove ppa:nginx/stable dengan command: “sudo ppa-purge ppa:nginx/stable”

  • menghapus isi folder /etc/apt/source.list.d

  • melakukan penambahan kembali (sudo add-apt-repository ppa:nginx/stable)

Untuk mengaktifkan servis Nginx:

sudo /etc/init.d/nginx start

Edit file /etc/nginx/sites-available/default, cari baris:

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

dan ubah menjadi:

# Arahkan proxy ke server hiawatha 127.0.0.1:8080
# atau dengan nama domain seperti backend.serverku.com:8080
#
location ~ \.php$ {
    proxy_pass http://127.0.0.1:8080;
}

Restart Nginx. Selamat mencoba. :)

NB: jika sudah men-generate serverkey untuk koneksi koneksi HTTPS seperti diceritakan pada tutorial sebelumnya, di Nginx bisa dengan mengedit baris di sites-available/default dan mengaktifkan baris konfigurasi terkait. arahkan ssl_certificate dan ssl_certificate_key pada file yg sama. Untuk optimasinya silahkan baca: http://nginx.org/en/docs/http/configuring_https_servers.html

No comments:

 

I'M A LAMER DON'T TROLL ME mas[TER] Copyright © 2013 | Powered by rifsivk yum