Sabtu, 16 April 2011

Berawal dari gak mau pake CGI dan Apache yg boros memory...saya cari2 web server yang ringan dan low memory dan akhirnya pilihan jatuh pada nginx web server.
configure fast cgi di nginx tidak terlalu sulit bahkan lebih mudah dari pada fast cgi di apache, oke lets do it.

Sebagai demo Kita akan memakai contoh CGI application dari lazarus yaitu \components\fpweb\demo\echo . demo ini adalah CGI application tapi dengan mudah kita akan ubah menjadi fast cgi application.
buka echo.lpr dan rubah menjadi sebagai berikut :
program echo;

{$mode objfpc}{$H+}

uses
  fpWeb,fpfCGI, wmecho; // <== ubah fpcgi menjadi fpfcgi.

begin
  Application.Initialize;
  Application.Port:=9090; //<== tambahkan Port , Fast CGI app kita akan listening di port ini.
  Application.CreateForm(TEchoModule, EchoModule);
  Application.Run;
end. 
cool bukan?
sekarang kita buka file configuration dari nginx   /conf/nginx.conf
di root http kita tambahkan directive "upstream fastcgi"
    upstream fastcgi {
      ip_hash;
      server 127.0.0.1:9090; //<== address dan port dari fast cgi application
     // kita bisa tambahkan server lain untuk load balancing eg : server
    }
lalu di dalam directive "server" :
location /pas { // <== berarti http://example.com/pas
    fastcgi_pass fastcgi; //<== lihat upstream
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}
 simpan.
fast cgi app kita harus dijalankan terlebih dahulu sebelum ada request ke nginx.
simple double klik fast cgi app td.
lalu reload nginx (nginx -s reload) .pada browser ketik "http://localhost/pas".

viola!!


Referensi :
- Nginx HTTP Server ClĂ©ment Nedelcu packt Publishing  2010 ISBN 978-1-849510-86-8

1 comments:

  1. sadis... tapi sekarang udah ada HTTP server application di Lazarus, jadi gak perlu external web server lagi. Semuanya embedded dalem 1 executable!

    BalasHapus

Katakan Sesuatu