Konfigurasi IPv6 di NGINX

Sehubungan dengan ditambahkannya IPv6 di server saya, hal yang harus segera saya lakukan adalah dengan meng-enable IPv6 di webserver (NGINX) agar semua domain lebih cihui dengan menggunakan IPv6. Saat ini banyak organisasi telekomunikasi, teknologi informasi yang telah mengaplikasikan IPv6 untuk keperluan sehari-hari mereka, begitu juga dengan corporate tempat saya bekerja yang sedang melakukan improvisasi IPv6 kedalam infrastrukturnya.

NGINX merupakan alternatif web server dari apache yang sudah membumi, namun semenjak saya menggunakan nginx saya cukup terkesan dengan performa NGINX karena memang jauh lebih keren daripada apache, meski untuk urusan modul apache jauh lebih lengkap. NGINX sudah mendukup IPv6 namun secara default module ini harus disertakan pada saat melakukan compile package. Berikut ini adalah step by step bagaimana mengkonfigurasi NGINX dengan dukungan IPv6 dan juga virtualhost dengan menggunakan IPv6…

Langkah pertama adalah memastikan apakah NGINX yang diinstall sudah mendukung IPv6?

$ /usr/sbin/nginx -V
nginx version: nginx/0.8.54
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
TLS SNI support disabled
configure arguments: –prefix=/usr/local/nginx……….  –with-ipv6

Jika terdapat “–with-ipv6” maka nginx telah mendukung IPv6 dan jika tidak ditemukan maka kita dapat melakukan compile ulang dengan menambahkan –with-ipv6 pada saat configure. Selanjutnya adalah mencoba melakukan setting virtualhost agar menggunakan ipv6, langkahnya adalah dengan mengedit konfigurasi virtualhost dengan menambahkan binding port agar listen ke ipv6.

$ sudo vi /usr/local/nginx/conf/vhost/default

server {
listen  80;
listen [::]:80 default ipv6only=on;
listen [::]:443 default ipv6only=on;
server_name _;

“default ipv6only=on” adalah agar port tesebut hanya listen pada ipv6 sehingga tidak bentrok dengan port 80 yang digunakan ipv4, jika default upv4only=on dihilangkan maka akan muncul pesan error seperti dibawah ini:

Starting nginx: [emerg]: bind() to [::]:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:443 failed (98: Address already in use)
[emerg]: bind() to [::]:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:443 failed (98: Address already in use)
[emerg]: bind() to [::]:80 failed (98: Address already in use)
[emerg]: bind() to 0.0.0.0:443 failed (98: Address already in use)

Oke, next adalah konfigurasi virtualhost untuk spesifik domain agar listen ke ipv6 dan konfigurasinya seperti dibawah ini:

server {
listen      blog.pnyet.web.id:80;
listen [2406:2400:dc7f::d4e7:130]:80;
server_name  blog.pnyet.web.id;

server {
listen      blog.pnyet.web.id:443;
listen [2406:2400:dc7f::d4e7:130]:443;
server_name  blog.pnyet.web.id;

Simpan konfigurasi tersebut diatas dan lihat apakah binding http port dan https port sudah listen ke IPv6, jika sudah maka hasilnya akan seperti ini:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      32580/nginx.conf
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      32580/nginx.conf
tcp        0      0 :::80                       :::*                        LISTEN      32580/nginx.conf
tcp        0      0 :::443                      :::*                        LISTEN      32580/nginx.conf

Nah, dari tulisan ini saya harapkan agar IPv6 lebih dikenali dan diminati karena semakin menipisnya Ipv4 seperti ozon dibumi :p


apache_nginx

Migrating Web Server From Apache To Nginx

Since two years ago (2007) this blog is hosted by Apache web server, and today I changed out the sofware in web server. I never had a “serious” problem with apache but I heard if nginx is a lightweight, high-performance HTTP server and reverse proxy. Nginx pronounced of engine-x also can handle static HTML, and does very well with dynamic (PHP) content as well. But nginx isn’t ideal for every server, nginx can’t handle SVN or WebDav, I’m still using apache for some situation :D. Continue reading “Migrating Web Server From Apache To Nginx” »


Solved PHP execution via fcgid requires the Apache mod_fcgid module

Kemarin saya menambahkan virtualmin GPL di web server blog ini, namun siapa yang menyangka hal ini malah menimbulkan masalah sehingga server tidak dapat diakses. Sekitar jam 3 pagi saya tidak juga menemukan letak permasalahannya, dan akhirnya tadi siang (8/9/10) saya melanjutkan project tersebut. Notifikasi “PHP execution via fcgid requires the Apache mod_fcgid module” muncul karena mod_fcgid tidak di load oleh apache.

mod_fcgid adalah alternatif untuk mod_cgi atau mod_cgid yang mempunyai kinerja tinggi, mod_fcgid mampu melayani permintaan secara bersamaan dan tetap berjalan untuk melayani permintaan-permintaan lebih lanjut. mod_fcid disukai oleh pengembang PHP misalnya untuk mnjalankan proses yang di handle oleh mod_php dan memberikan kinerja yang sangat mirip.

“PHP execution via fcgid requires the Apache mod_fcgid module” dapat diatasi dengan membuat file /etc/httpd/conf.d/fcgid.conf dan menambahkan beberapa paramerter berikut:

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule !mod_fastcgi.c>
AddHandler fcgid-script fcg fcgi fpl
</IfModule>
SocketPath run/mod_fcgid
SharememPath run/fcgid_shm
Jika dengan cara itu problem mod_fcgid belum dapat diatasi, silahakan dowload dan reinstall mod_fcgid seperti dibawah ini:
# wget ftp://mirror.switch.ch/pool/1/mirror/epel/5/x86_64/mod_fcgid-2.2-10.el5.x86_64.rpm
# rpm -e –nodeps mod_fcgid
# rpm -Uvh mod_fcgid-2.2-10.el5.x86_64.rpm
Kemudian sesuaikan file /etc/httpd/conf.d/fcgid.conf seperti diatas, dan semoga apache di virtualmin bisa normal kembali menggunakan mod_fcgid.

Error

Invalid Response error was encountered while trying to process the request

Fewh…, berniat menginstall Cacti Traffic Monitoring Graph ternyata malah mendapat masalah dengan bug apache yang terinstall di server, saat ini httpd yang terinstall adalah:

httpd-manual-2.2.3-31.el5.centos.2
httpd-devel-2.2.3-31.el5.centos.2
httpd-2.2.3-31.el5.centos.2
httpd-devel-2.2.3-31.el5.centos.2

Jika browsing ke server yang akan diinstall cacti tanpa melalui squid / proxy maka tidak akan muncul error apapun, namun jika browsing dengan proxy muncul error message seperti dibawah ini: Continue reading “Invalid Response error was encountered while trying to process the request” »