Mengatasi CT 503

Dari Dokumentasi Robie
Loncat ke navigasi Loncat ke pencarian

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">

  1. !/bin/bash

echo "--- Memulai Optimasi CyberPanel vs Error 503 ---"

  1. 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

  1. 2. Batasi PHP Max Connections & Auto-Restart (LSAPI)
  2. 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

  1. 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

  1. 4. Membuat Script Auto-Heal (fix_503.sh)

cat << 'EOF' > /root/fix_503.sh

  1. !/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

  1. 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 -

  1. 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>