FastCGI (Spanel)
FastCGI adalah protokol ekstensi bagi CGI yang memungkinkan kinerja yang lebih tinggi karena efisiensi yang lebih. Sebuah proses FastCGI umumnya tidak harus direstart atau dieksekusi ulang di setiap request, melainkan berjalan di background dan memproses banyak request dalam loop. FastCGI, sama seperti CGI, tidak terikat pada bahasa atau webserver tertentu. Anda dapat membuat aplikasi FastCGI dalam bahasa apa saja yang mendukungnya, seperti Perl, Python, Ruby, dll.
Keterangan lebih jauh tentang FastCGI: http://www.fastcgi.com .
Mengaktifkan FastCGI
1. Plan hosting yang Anda pilih perlu memiliki fitur FastCGI. Hubungi staff support jika Anda tidak yakin.
2. Skrip CGI Anda, jika belum disesuaikan untuk FastCGI, perlu sedikit diubah. Misalnya, di Perl, Anda mengganti "use CGI" dan "$q = new CGI" menjadi "use CGI::Fast" dan "$q = new CGI::Fast". Di bahasa lain mungkin caranya sedikit berbeda.
3. Skrip CGI Anda dinamai dengan akhiran .fcgi dan bukan lagi .cgi.
Troubleshooting
XXX
- lihat error log webserver
- coba jalankan skrip Anda dari command-line
- coba rename sementara ke .cgi
- catatan admin: Python: jika ada baris seperti ini di error log utama server (/var/lib/apache2/error.log): ""-" /usr/bin/env: python: No such file or directory" maka gantilah baris pertama skrip aplikasi Python dari "#!/usr/bin/env python" menjadi "#!/usr/bin/python".
- Jika aplikasi gagal berjalan minimal 30 detik selama 3 kali (mis: karena mengandung syntax error sehingga gagal dikompile oleh interpreter skrip), maka mod_fastcgi akan memundurkan interval restart dari 5 detik defaultnya menjadi 600 detik. (XXX Catatan admin: keterbatasan mod_fastcgi? Ganti mod_fastcgi dengan mod_fcgid?).
Kill beberapa kali dan gagal up kembali?
T: Saya melakukan kill terhadap proses FastCGI saya (menggunakan /c/bin/my-fcgi) beberapa kali dalam waktu singkat, mengapa kemudian timbul 500 Internal Server Error di browser?
J: Ini memang kelakuan dari mod_fastcgi, jika sebuah aplikasi FastCGI gagal up minimal 30 detik dan ini terjadi selama 3 kali berturut-turut, maka mod_fastcgi tidak akan melakukan restarting lagi dalam waktu cepat, melainkan menundanya selama 600 detik (10 menit).
Skrip contoh
Merestart aplikasi FastCGI
Untuk melihat daftar proses aplikasi FastCGI Anda yang sedang berjalan, di command line:
$ /c/bin/my-fcgi list
20361 /usr/bin/python dispatch.fcgi
21211 /usr/bin/perl test-perl.fcgi
21230 /usr/local/bin/ruby test-ruby.fcgi
24152 /usr/bin/python dis.fcgi
25217 /usr/bin/python dispatch.fcgi
Untuk membunuh semua proses-proses tersebut, gunakan:
$ /c/bin/my-fcgi kill
Untuk membunuh dengan sinyal yang berbeda, gunakan:
$ /c/bin/my-fcgi kill -KILL
Untuk membunuh hanya proses tertentu saja, sebutkan PID-nya:
$ /c/bin/my-fcgi kill -KILL 20361 21211
Atau bisa juga dengan perintah killall atau pkill untuk membunuh berdasarkan nama program:
$ /c/bin/my-fcgi pkill dis.fcgi dispatch.fcgi
Categories: Spanel | Web | FastCGI
|