Membangun Web Server Menggunakan Nginx di Debian 5
Assalaamu'alaikum Warahmatullah Wabarakatuh
Alhamdulillah, Alhamdulillah, tak henti rasa syukur ini selalu dan selalu dipanjatkan kepada Allah Subhanahu Wa ta'ala yang telah melimpahkan rahmatnya hingga bisa menulis lagi dan bisa berbagi sedikit pengetahuan. Bagaimana kabar sobat semua? semoga selalu dalam keadaan baik juga. Aamiin.. Oke langsung saja, kali in saya ingin berbagi tentang salah satu pelajaran yang saya dapatkan ketika menjejak bangku SMK. Kebetulan saat itu sedang berada di kelas XII dan mendapat tugas kelompok membuat makalah (lebih tepatnya tutorial) mengenai sebuah server dengan berbagai macam service. Tapi disini saya tidak akan bahas semua, hanya satu service saja, yaitu WEB SERVER. Kebetulan juga pada saat itu kelompok kami mendapat.kan paket yang berbeda yaitu dengan menggunakan NGINX. Meski sudah populer, biasanya pelajar lebih mengenal paket apache daripada yang satu itu, oke langsung saja ya.
Membangun WEB SERVER menggunakan NGINX di Debian
5.05
A.
DASAR TEORI
Nginx (baca : engine x)
merupakan server HTTP dan reverse proxy gratis berbasis open-source
berkemampuan tinggi, yang dapat juga digunakan sebagai proxy IMAM/POP3. Nginx
diciptakan oleh Igor Sysoev pada tahun 2002, dan dirilis untuk pertama kalinya
secara umum pada tahun 2004diciptakan oleh Igor Sysoev pada tahun 2002, dan
dirilis untuk pertama kalinya secara umum pada tahun 2004.
B.
BAHAN
Virtual debian 5.05
CD debian 5.05 atau file
iso debian 5.05
Nginx-0.9.3.tar.gzip
C.
INSTALLASI
Karena di debian belum
tersedia paket untuk nginx karena defaultnya web server untuk debian sendiri
adalah apche2 maka kita harus mendownload paket nginx sendiri. Bisa langsung
dari debian.nya bila terkoneksi internet atau bisa download di luar kemudian
kita kopikan ke debiannya. Untuk praktek kali ini saya mencoba untuk
mendownload paket nginx dari luar karena koneksi internet yang tidak
memungkinkan. Langsung saja ya :
1.
Install paket yangdiperlukan sebelum mengompile nginx
di debian yaitu :
apt-get
install libc6 libpcre3 libpcre3-dev libpcrecpp0 libssl.0.9.8 libssl-dev zlib1g
zlib1g-dev lsb-base
2.
Download paket nginx yang terupdate. Bisa didownload
di www.nginx.org . Untuk kali ini yang
terupdate adalah nginx-0.9.3.tar.gzip. kemudain taruh di /root atau dimana
saja.
3.
Untar paket nginx tadi dengan command :
tar
–xvzf nginx-0.9.3.tar.gzip
4.
Masuk ke folder hasil untar paketnya tadi:
cd
/nginx-0.9.3 kemudian ls
5. Konfigurasikan nginx-compilate, tapi sebelumnya
pastikan bahwa telah ada paket gcc agar bisa konfigurasi serta compile paket.
Jika belum ada paketnya, bisa diinstall dengan command : apt-get install
build-essential setelah itu konfigurasikan nginx dengan command :
./configure
–sbin-path=/usr/sbin –conf-path=/etc/nginx/nginx.conf
–error-log-path=/var/log/nginx/error.log –pid-path=/var/run/nginx.pid
–lock-path=/var/lock/nginx.lock –http-log-path=/var/log/nginx/access.log
–http-client-body-temp-path=/var/lib/nginx/body
–htp-proxy-temp-path=/var/lib/nginx/proxy
–http-fastcgi-temp-path=/var/lib/nginx/lib/fastcgi –with-debug
–with-http_stub_status_module –with-http_flv_module –with-http_ssl_module
–with-http_dav_module –with-ipv6
6. Kompile dan install nginx dengan command :
make
&& make install
7. Setelah terinstall tanpa ada error yang mucul, cek
dengan command : nginx –v untuk melihat apakah nginx sudah benar-benar
terinstall atau belum. Jika sudah maka
kita harus membuat script untuk menjalankan nginx yaitu dengan membuat
script di /etc/init.d/nginx . Untuk scriptnya kita bisa cari di internet.
Contoh saja untuk script init debian yang sopan adalah seperti ini :
#! /bin/sh
### BEGIN INIT INFO
# Provides : nginx
# Required-Start : $all
# Required-Stop : $all
# Default-Start : 2 3 4 5
# Default-Stop : 0 1 6
# Short-Description : starts the nginx web server
# Description : starts nginx using start-stop-daemon
### END INIT INFO
DAEMON=/usr/sbin/nginx
NAME=nginx
DESC=nginx
test -x $DAEMON || exit 0
# Include nginx defaults if
available
if [ -f /etc/default/nginx ] ;
then
. /etc/default/nginx
fi
set -e
case "$1" in
start)
echo -n "Starting $DESC:"
start-stop-daemon --start --quiet
--pidfile /var/run/SNAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
|| true
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC:"
start-stop-daemon --stop --quiet
--pidfile /var/run/$NAME.pid \
--exec $DAEMON || true
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC:"
start-stop-daemon --stop --quiet
--pidfile \
/var/run/$NAME.pid --exec
$DAEMON || true
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC
configuration:"
start-stop-daemon --stop --signal HUP
--quiet --pidfile /var/run/$NAME.pid \
echo "$NAME."
;;
configtest)
echo -n "Testing $DESC
configuration:"
if nginx -t > /dev/null 2>&1
then
echo "$NAME."
else
exit $?
fi
;;
*)
echo "Usage: $NAME
{start|stop|restart|reload|force-reload|configtest}" >&2
exit 1
;;
esac
exit 0
8.
Buat skrip tersebut executable dengan cara :
Chmod
+x /etc/init.d/nginx
Kemudian jika ingin
memulai nginx secara otomatis saat boot maka :
Update-rc.d
nginx defaults
9.
Selanjutnya adalah tinggal mengkonfigurasi untuk file
/etc/nginx/nginx.conf tapi sebelumnya kita bisa mengecek apakah installasi
nginx tersebut berhasil atau belum melalui browser client dengan mengetikkan IP
web server yang baru saja kita install. Jika installasi berhasil maka akan
muncul kalimat "Welcome to Nginx".
D.
KONFIGURASI
1.
Default
/etc/nginx/nginx.conf
Defaultnya :
#user www-data;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main
'$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent
"$http_referer" '
# '"$http_user_agent"
"$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error
pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to
Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass
http://127.0.0.1;
#}
# pass the PHP scripts to
FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess
files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#
deny all;
#}
}
# another virtual host using
mix of IP-, name-, and port-based configuration
#
#server {
# listen
8000;
# listen
somename:8080;
# server_name
somename alias another.alias;
# location / {
# root
html;
# index
index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen
443;
# server_name
localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
# root
html;
# index
index.html index.htm;
# }
#}
}
Tampilan defaultnya adalah
muncul kalimat “Welcome to Nginx”
2.
Joomla
a.
Install paket mysql
apt-get
install mysql-server mysql-client
b.
Install paket php5 à install sebagai
fastcgi di nginx
apt-get
install php5-cgi php5-mysql
c.
Buat
script /etc/init.d/php-fastcgi
d.
Jalankan
php-fastcgi
e.
Edit file
/etc/nginx/nginx.conf
Tambahkan :
Error_log
/var/log/nginx/error.log
Pid /var/run/nginx.pid
Include
/etc/nginx/sites-enabled/*;
f.
Buat
direktori /etc/nginx/sites-available dan /etc/nginx/sites-enabled
g.
Buat file
/etc/nginx/sites-available/default yang berisi konfigurasi virtual host untuk
default
h.
Masukkan
joomla yang sudah diekstrak ke /var/www/nginx-default/joomla
E.
HASIL
1.
Hasil tampilan awal sebelum diubah-ubah
2.
Tampilan setelah diubah ke joomla
Bagaimana sobat semua? sepertinya cukup itu dulu yang dapat saya bagi, semoga kedepannya bisa lebih banyak lagi yang bisa dibagi. Terus Belajar. Terus Berkarya. Terus Bergerak Mari Tuntaskan Perubahan untuk Kebangkitan Indonesia..
Wassalaamu'alaikum Warahmatullah Wabarakatuh
NB: Untuk debian versi 6 ada tutorial baru nih.. lebih mudah :) DISINI
Thanks buat infonya gan, sangat membantu sekali bagi saya yang sedang belajar web server.
BalasHapussama-sama. terimakasih telah mampir :)
Hapuskok puyeng yak -_-
BalasHapusterimakasih telah mampir. untuk instalasi maupun konfigurasi nginx di debian 5 memang masih rumit. tapi semakin berkembangnya versi debian, instalasi dan konfigurasi menjadi semakin mudah layaknya instalasi dan konfigurasi apache. Coba cek postingan saya tentang instalasi dan konfigurasi nginx di debian 6 (squeeze), jauh lebih mudah. :) begitu juga dengan debian 7..
Hapuscoba cek disini http://goresan-tanpa-makna.blogspot.com/2015/03/membangun-web-server-nginx-di-debian-6.html