You are on page 1of 14

Makalah Untuk Memenuhi Tugas Jarkom

Nama : Noviana Pertiwi Kelas : XI 2

SMK BAKTI NUSANTARA 666 BANDUNG

Daftar isi

1.1 Daftar isi

..

1.2 Pengertian nginx

.. 1 3

1.3 Cara menbuat webserver menggunakan nginx,php,mysql

i 1.1 Nginx sebagai web server

Nginx akronim dari engine x, mulanya dirancang dan dikembangkan oleh Igor Sysoev asal Rusia yang mengadopsi lisensi BSD. Nginx adalah software aplikasi untuk Webserver kinerja tinggi, Reverse Proxy dan E-Mail-Proxy (POP3/IMAP) yang jumlah penggunanya secara global kian hari bertambah pesat. Saat ini Nginx telah digunakan oleh sekitar 6,32 % dari semua website yang ada dipermukaan bumi, menguasai 15,7 % dari Top 10.000 Websites dan menurut pemantau web Netcraft, web server Open Source ini menduduki posisi nomor 3 setelah Apache dan Microsoft IIS. Nginx dibangun secara modular dan dengan demikian mampu mendukung berbagai fitur seperti Load Balancing dan Reverse Proxying, Virtual hosts berbasis nama dan IP, FastCGI, akses langsung ke Memcached Cache, SSL, Flash Video Streaming dan sejumlah fitur-fitur standar lainnya. Nginx dapat dijalankan dan tersedia untuk platform Unix, Linux, varian dari BSD, Mac OS X, Solaris, dan Microsoft Windows. Nginx menjadi pilihan berkat kinerjanya yang tinggi, stabilitas, kekayaan akan fitur, mudah dikonfigurasi dan terutama hemat sumber daya. Berbeda dengan server tradisional, Nginx tidak sepenuhnya bergantung pada threads untuk menangani permintaan (requests). Sebagai pengganti Nginx menggunakan teknik arsitektur yang digerakkan berdasarkan event yang lebih skalabel (scalable asynchronous event-driven architecture). Arsitektur ini ternyata pada saat dibebani hanya memerlukan sedikit memori dan menurut pengembangnya dalam jumlah yang bisa diprediksi. Awalnya Nginx dibangun di Rusia untuk memenuhi kebutuhan mesin pencari skala besar Rambler yang tetap memanfaatkannya sampai sekarang. Berkat berbagai kemampuan yang dimilikinya, termasuk kinerja yang tinggi dan fleksibilitas dalam komfigurasi, nginx banyak digunakan untuk mendukung layanan web skala besar seperti WordPress.com, GitHub, SourceForge, ComputerBase, FastMail, Hulu dan lainnya. Atau ada juga pengertian yang lainnya yaitu Nginx adalah web server yang sangat powerfull, menurut bechmark terbukti nginx unggul di static file dari pada apache dan lighttpd.

Dengan penggunaan NGINX sebagai reverse proxy untuk apache maka beban server dapat di kurangi dan waktu loading untuk client-client NIMHOST juga dapat semakin cepat.

Berdasarkan informasi yang di berikan oleh Extended Status Bar (firefox plugin), waktu yang di perlukan untuk membuka http://nimhost.com hanyalah 5-7 detik sedangkan untuk http://nimbrung.net hanya memerlukan waktu di antara 8-9 detik. Pada waktu menggunakan apache, loading time untuk http://nimhost.com memakan waktu 10-12 detik sedangkan untuk http://nimbrung.net memakan waktu 15-19 detik (koneksi menggunakan Fastnet 3Mbps). Jadi dapat di simpulkan penggunaan NGINX mempercepat loading time website. Di harapkan dengan adanya improvisasi ini, loading time client-client NIMHOST menjadi lebih cepat dan server pun menjadi lebih stabil.

1.3 Cara mebuat webserver menggunakan nginx,php,mysql

1. Edit repositori di /etc/apt/source.list Code: # nano /etc/apt/sources.list 2. Tambahkan 2 baris berikut, Code: deb http://packages.dotdeb.org stable all deb-src http://packages.dotdeb.org stable all lalu save! 3. update hasil perubahan repo Code: # apt-get update 4. Install Nginx, PHP dan semua modul yg di butuhkan Code: # aptitude install nginx php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl 5. Coba Nginx yg baru di install Code: # /etc/init.d/nginx start 5. Edit file /etc/php5/cgi/php.ini , cari baris cgi.fix_pathinfo = 0, lalu ubah angka 0 jadi 1. lalu tambahkan juga baris berikut di akhir file, cgi.fix_pathinfo = 1 save! 3

6. Install MySQL Code: # apt-get install mysql-server mysql-client 7. Install lighttpd web server, Code: # apt-get install lighttpd (Penjelasan: karna nginx tidak memiliki modul FastCGI sendiri, dia butuh modul dari web server lain. Tapi hanya 1 modul saja yg di butuhkan yaitu spawn-fcgi. Setelah modul di ambil, lighttpd harus di matikan. karna tidak mungkin 2 web server jalan sekaligus dlm port yg sama) kalo muncul error seperti ini, "Starting web server: lighttpd2009-03-19 15:58:09: (network.c.300) can't bind to port: 80 Address already in use failed!" itu berarti port 80 sudah di gunakan Nginx. Cara mengatasinya adalah, hentikan dlu nginx Code: # /etc/init.d/ningx stop Lalu install ulang lighttpd Code: # apt-get install lighttpd 8. Setelah di install, hentikan proses lighttpd, karna yg akan kita gunakan ada Nginx, bukan lighttpd. Kita hanya butuh 1 modul nya saja seperti yg sudah saya jelaskan di atas. Code: # /etc/init.d/lighttpd stop

9. Atur agar lighttpd tidak otomatis aktif saat boot

Code: # update-rc.d -f lighttpd remove # rm /usr/sbin/lighttpd 10. Buat file /etc/init.d/php-fastcgi utk meng-handle proses dari PHP/FastCGI. Code: # nano /etc/init.d/php-fastcgi

Lalu isikan kode berikut, Code: #! /bin/sh ### BEGIN INIT INFO # Provides: php-fastcgi # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 016 # Short-Description: Start and stop php-cgi in external FASTCGI mode # Description: Start and stop php-cgi in external FASTCGI mode ### END INIT INFO # Author: Kurt Zankl # Do NOT "set -e" PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="php-cgi in external FASTCGI mode" NAME=php-fastcgi DAEMON=/usr/bin/php-cgi

PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME PHP_CONFIG_FILE=/etc/php5/cgi/php.ini # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # If the daemon is not enabled, give the user a warning and then exit, # unless we are stopping the daemon if [ "$START" != "yes" -a "$1" != "stop" ]; then log_warning_msg "To enable $NAME, edit /etc/default/$NAME and set START=yes" exit 0 fi # Process configuration export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS DAEMON_ARGS="-q -b $FCGI_HOST:$FCGI_PORT -c $PHP_CONFIG_FILE" do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \

|| return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON \ --background --make-pidfile --chuid $EXEC_AS_USER --startas $DAEMON -- \ $DAEMON_ARGS \ || return 2 } do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE > /dev/null # --name $DAEMON RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;;

stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac Save! Buat agar dapat di eksekusi Code:

# chmod +x /etc/init.d/php-fastcgi 11. Buat file konfigurasi spawn-fcgi Code: # nano /etc/default/php-fastcgi Lalu isikan kode berikut Code: # Which user runs PHP? (default: www-data) EXEC_AS_USER=www-data # Host and TCP port for FASTCGI-Listener (default: localhost:9000) FCGI_HOST=localhost FCGI_PORT=9000 # Environment variables, which are processed by PHP PHP_FCGI_CHILDREN=4 PHP_FCGI_MAX_REQUESTS=1000 12. Atur agar spawn-fcgi start saat boot Code: # update-rc.d php-fastcgi defaults # /etc/init.d/php-fastcgi restart 14. sekarang kita konfigurasi default virtual host nya Code: # nano /etc/nginx/sites-available/default

Lalu isikan kode berikut, Code: server { listen 80; server_name localhost; # 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 /var/www/nginxdefault$fastcgi_script_name; include fastcgi_params; } location / { root /var/www/nginx-default; index index.php; } } (NOTE: Yang harus di sesuaikan adalah baris "fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;". Sesuaikan dng lokasi document root server kamu. Contoh di atas adalah lokasi defaultnya saja. Juga baris "server_name _;" di sesuaikan dng nama server kamu, misal hacker-newbie.org, dll) 15. edit file Nginx.conf # nano /etc/nginx/nginx.conf Cari baris berikut dan udah angkanya worker_processes 5; keepalive_timeout 2;

16. untuk memulai PHP FastCGI daemon pada localhost port 9000, ketik command berikut Code: # /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php agar command tsb langsung aktif saat boot, edit file /etc/rc.local, lalu tambahkan kode berikut sebelum tulisan EXIT: /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid Save! 17. Restart Nginx Code: # /etc/init.d/nginx restart 18. Coba tes menggunakan coding PHP sederhana Code: # nano /var/www/nginx-default/info.php PHP Code: <? phpinfo(); ?> 19. Buka browser, dan ketik http://localhost/info.php... liat hasilnya. 20. Untuk memulai Nginx saat boot, ketik command berikut, Code: # update-rc.d nginx defaults

You might also like