Selama beberapa hari ini saya mencari penyebab error 502 bad gateway setelah melakukan upgrade Nginx dari versi 1.6.0 ke versi 1.6.1 dan Php-Fpm dari versi 5.3.28-1 ke versi 5.3.29-1.
Ada beberapa solusi :
- Pertama yaitu jika kita mempergunakan socket untuk Php, maka kita bisa merubahnya memakai tcp
- Kedua, merubah setingan owner dan group untuk php di konfigurasi Nginx
Contoh konfigurasi untuk Nginx karena saya memakai Minstall2.5.7 dan Debian 6 32bit :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Contoh konfigurasi jika memakai socket : # nano /etc/nginx/php.d/www-data.conf location ~ \.php$ { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/dev/shm/php.socket; include fastcgi_params; try_files $uri =404; } Contoh konfigurasi jika memakai tcp : # nano /etc/nginx/php.d/www-data.conf location ~ \.php$ { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; try_files $uri =404; } |
Contoh konfigurasi untuk Php5-fpm karena saya memakai Minstall2.5.7 dan Debian 6 32bit :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Contoh konfigurasi Php5-Fpm jika memakai socket : # nano /etc/php5/fpm/pool.d/www-data.conf [www-data] listen = /dev/shm/php.socket user = www-data group = www-data listen.owner = www-data listen.group = www-data pm = ondemand pm.max_children = 4 pm.max_requests = 500 php_flag[expose_php] = off php_value[max_execution_time] = 120 php_value[memory_limit] = 64M Contoh konfigurasi Php5-Fpm jika memakai tcp : # nano /etc/php5/fpm/pool.d/www-data.conf [www-data] listen = 127.0.0.1:9000 user = www-data group = www-data listen.owner = www-data listen.group = www-data pm = ondemand pm.max_children = 4 pm.max_requests = 500 php_flag[expose_php] = off php_value[max_execution_time] = 120 php_value[memory_limit] = 64M |
Akhirnya, saya hanya mempergunakan konfigurasi untuk Nginx dan Php5-fpm yang memakai socket.
Dan perlu diperhatikan, penyebab munculnya error 502 atau bad gateway adalah karena Php5-fpm tidak dapat berkomunikasi dengan Nginx.
Ada perubahan yang perlu dilakukan di file konfigurasi /etc/php5/fpm/pool.d/www-data.conf yaitu mengenai keterangan listen.owner dan listen.group, dimana pada konfigurasi sebelumnya sebelum melakukan upgrade dipergunakan user = www-data dan group = www-data, dan setelah melakukan upgrade maka dipakai listen.owner = www-data dan listen.group = www-data
permisi gan, saya ada sedikit tulisan tentang websocket di php, silahkan kalau berkenan untuk mengembangkannya lebih baik, http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html semoga menambah wawasan gan, dan semoga bermanfaat, semangad open source 😀