Mengatasi CT 503
Panduan Mengatasi Error 503 di CyberPanel (Proxmox LXC)
Error 503 pada CyberPanel biasanya disebabkan oleh kebocoran memori (memory leak) pada proses PHP atau penggunaan resource yang melebihi alokasi RAM pada Container Proxmox.
Gejala Umum
- Website menampilkan pesan "503 Service Unavailable".
- Load Average tinggi meskipun penggunaan CPU rendah.
- Penggunaan RAM melonjak drastis dalam waktu singkat (Memory Swelling).
- Masalah selesai sementara setelah restart Container (CT).
Langkah Optimasi Otomatis (Bash Script)
Gunakan script berikut untuk melakukan optimasi otomatis pada konfigurasi OpenLiteSpeed, MariaDB, dan sistem pemulihan mandiri (Auto-Heal).
1. Membuat Script Optimasi
Jalankan perintah berikut di terminal root Container: <source lang="bash"> nano /root/optimize_cyberpanel.sh </source>
Tempelkan kode di bawah ini: <source lang="bash">
- !/bin/bash
echo "--- Memulai Optimasi CyberPanel vs Error 503 ---"
- 1. Backup Konfigurasi
cp /usr/local/lsws/conf/httpd_config.conf /usr/local/lsws/conf/httpd_config.conf.bak cp /etc/my.cnf /etc/my.cnf.bak
- 2. Batasi PHP Max Connections & Auto-Restart (LSAPI)
- Mencegah PHP memakan seluruh RAM 2GB
sed -i 's/maxConns [0-9]*/maxConns 15/g' /usr/local/lsws/conf/httpd_config.conf sed -i '/LSAPI_MAX_REQS/d' /usr/local/lsws/conf/httpd_config.conf sed -i '/LSAPI_MAX_IDLE/d' /usr/local/lsws/conf/httpd_config.conf echo "env LSAPI_MAX_REQS=500" >> /usr/local/lsws/conf/httpd_config.conf echo "env LSAPI_MAX_IDLE=30" >> /usr/local/lsws/conf/httpd_config.conf
- 3. Optimasi Database RAM (Limit 512MB)
if ! grep -q "innodb_buffer_pool_size" /etc/my.cnf; then
sed -i '/\[mysqld\]/a innodb_buffer_pool_size = 512M\ninnodb_log_file_size = 128M\nmax_connections = 100' /etc/my.cnf
fi
- 4. Membuat Script Auto-Heal (fix_503.sh)
cat << 'EOF' > /root/fix_503.sh
- !/bin/bash
FREE_RAM=$(free -m | awk '/^Mem:/{print $4}') if [ "$FREE_RAM" -lt 150 ]; then
echo "$(date) - RAM Kritis ($FREE_RAM MB). Restarting..." >> /var/log/cyberpanel_heal.log /usr/local/lsws/bin/lswsctrl restart killall -9 lsphp systemctl restart mariadb
fi EOF chmod +x /root/fix_503.sh
- 5. Pasang Cron Job (Cek setiap 5 Menit)
(crontab -l 2>/dev/null | grep -v "fix_503.sh" ; echo "*/5 * * * * /bin/bash /root/fix_503.sh > /dev/null 2>&1") | crontab -
- 6. Restart Service
/usr/local/lsws/bin/lswsctrl restart systemctl restart mariadb killall -9 lsphp
echo "--- Optimasi Selesai ---" </source>
2. Menjalankan Script
Eksekusi script dengan perintah: <source lang="bash"> chmod +x /root/optimize_cyberpanel.sh ./root/optimize_cyberpanel.sh </source>
Catatan Teknis
- LSAPI_MAX_REQS=500: Memaksa proses PHP untuk restart setelah menangani 500 permintaan guna membersihkan akumulasi penggunaan RAM.
- maxConns 15: Membatasi jumlah proses PHP simultan agar tidak melebihi kapasitas RAM 2GB.
- Cron Job: Melakukan pengecekan setiap 5 menit. Jika sisa RAM di bawah 150MB, layanan akan di-restart otomatis sebelum Error 503 muncul secara permanen.
Monitoring
Untuk memantau log jika terjadi pembersihan otomatis oleh script: <source lang="bash"> tail -f /var/log/cyberpanel_heal.log </source>