Pendahuluan
Kali ini saya akan menjabarkan bagaimana menginstall web server nginx (baca Engine X) pada Raspberry Pi. nginx merupakan web server yang ringan dan cepat dari webserver lainnya misal Apache. mengingat Raspberry Pi mempunyai resource terbatas, maka jika kita perlu membuat aplikasi web pada Raspberry Pi, nginx merupakan pilihan yang tepat sebagai webserver karena merupakan webserver yang paling ringan dan cepat. baik kita mulai step by step.
Update Package
perlu di ingat bahwa Raspberry Pi perlu terkoneksi ke internet. untuk mengkoneksikan ke internet, kamu bisa memberikan akses internet melalui thetering WiFi, LAN atau USB thetering. sebelum mulai menginstall nginx pada Raspberry Pi. ada baiknya kita update package terlebih dahulu dengan perintah dibawah ini :
sudo apt-get update
Install Nginx
Perlu diketahui bahwa nginx merupakan "Asynchronous” server yang mana artinya nginx dapat menjalankan beberapa action dalam waktu yang sama. tanpa menunggu berakhirnya suatu proses untuk menjalankan proses selanjutnya. tidak seperti Apache yang jika ada multiple proses dalam waktu yang sama maka akan mejalankan sebuah proses baru. dengan itu maka nginx akan lebih cepat dan mengkonsumsi memori yang lebih sedikit. kita akan menginstall nginx melalui terminal. dalam kondisi Raspberry Pi terhubung ke internet. jalankan perintah dibawah ini :
sudo apt-get install nginx
Konfigurasi Nginx dan CGI
setelah proses penginstallan nginx selesai, sebelum service nginx dijalankan, kita perlu mengkonfigurasi nginx. pengaturan ini berguna untuk memberitahukan folder mana saja yang digunakan sebagai folder Web, atau kita perlu mengenalkan index.php sehingga dapat dijalankan otomatis. untuk itu kita perlu mengedit file konfigurasi yatu terletak di "/etc/nginx/sites-available/default", untuk mengeditnya kita bisa menggunakan program nano seperti dibawah ini :
sudo nano /etc/nginx/sites-available/default
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri =404;
}
untuk menambahkan lokasi baru misalkan kita ingin membuat folder di "/var/www/html/newfolder" dan mengharapkan dapat dibuka dengan alamat http://ip-address/newfolder/" maka perlu menambahkan location baru seperti dibawah ini :
location /newfolder {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri =404;
}
secara default nginx tidak tersedia fasilitas CGI, apabila kita memerlukan CGI agar kode Pyhton dapat dijalankan melalui web browser maka, nginx perlu dikonfigurasi dan memerlukan program tambahan, saya disini menggunakan uwsgi. untuk mengkonfigurasi CGI dapat ditambahkan baris berikut masih di file "/etc/nginx/sites-available/default" :
location /cgi-bin {
include uwsgi_params;
uwsgi_modifier1 9;
uwsgi_pass 127.0.0.1:9000;
}
location /doc/ {
alias /usr/share/doc;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
ketika selesai kita bisa restart service nginx dengan perintah sudo service nginx restart dan lanjutkan dengan menginstall uwsgi dengan perintah sudo apt-get install uwsgi setelah itu kita perlu membuat file dengan nama uwsgi_config.ini dapat dilakukan dengan perintah nano uwsgi_config.ini dan isi file tersebut seperti dibawah ini :
[uwsgi]
plugins = cgi
threads = 20
socket = 127.0.0.1:9000
chdir = /usr/lib/cgi-bin/
cgi=/cgi-bin=/usr/lib/cgi-bin/
cgi-helper =.py=python
kemudian save dengan shortcut ctrl + x dan pilih Yes (kamu bisa menyimpannya dimana saja, kasus pada saya menyimpan file uwsgi_config.ini di directory /home/pi). kita akan menyiapkan sebuah script Python sederhana dengan nama hello.py dan akan disimpan pada folder /usr/lib/cgi-bin/ jika folder tersebut belum ada kamu dapat membuatnya. isi dari script Python adalah sebagai berikut :
#!/usr/bin/env python
print "Content-type: text/html\n\n"
print "Hello Wolrd"
kemudian beri permission 777 padanya dengan perintah sudo chmod 777 /usr/lib/cgi-bin/hello.py, kemudian kita akan mejalankan uwsgi dengan config yang sudah kita buat dengan perintah sudo -u www-data uwsgi ./uwsgi_config.ini& (sebelumnya pindah dulu ke directory dimana file uwsgi_config.ini berada ) maka program uwsgi akan berjalan pastikan tidak ada error.
untuk mengujinya apakah program Python dapat dijalankan pada web browser, buka web browser pada komputer lain yang satu jaringan dengan Raspberry Pi. kemudian isikan pada bagian address bar yaitu : http://ip-raspberry-pi/cgi-bin/hello.py jika sebuahnya sudah benar maka akan tampil tampilan seperti berikut ini :