Advertisement

Konfigurasi Server VPS Membatasi User Aktif

 

✅ 1. KONFIGURASI APACHE (PALING AMAN UNTUK 20 USER)

Pertama cek Apache pakai MPM apa:

apache2ctl -V | grep MPM

Biasanya: mpm_event atau mpm_prefork.


Jika memakai mpm_event (paling umum):

Edit:

sudo nano /etc/apache2/mods-available/mpm_event.conf

Gunakan pengaturan:

StartServers 1 MinSpareThreads 10 MaxSpareThreads 25 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 25 MaxConnectionsPerChild 0

🔵 Penjelasan

  • Maksimal hanya 25 worker, aman untuk 20 user

  • Server tidak kelebihan beban

  • User di atas 20–25 akan otomatis menunggu / menerima pesan penuh


Jika memakai mpm_prefork:

sudo nano /etc/apache2/mods-available/mpm_prefork.conf

Isi:

StartServers 2 MinSpareServers 2 MaxSpareServers 5 MaxRequestWorkers 20 MaxConnectionsPerChild 0

🔵 2. AKTIFKAN MODUL REWRITE & STATUS

Agar Apache bisa memberikan halaman antri.

sudo a2enmod rewrite sudo a2enmod status sudo systemctl restart apache2

🟥 3. BUAT HALAMAN “SERVER PENUH / MENUNGGU”

Buat file HTML:

sudo nano /var/www/html/maintenance.html

Isi:

<!DOCTYPE html> <html> <head> <title>Server Sedang Penuh</title> <style> body { font-family: Arial; text-align:center; padding:60px;} h1 { color:#d35400;} </style> </head> <body> <h1>Server Sedang Penuh</h1> <p>Saat ini server melayani pengguna lain.<br> Silakan tunggu 10–30 detik dan coba kembali.</p> </body> </html>

🟧 4. ATUR APACHE AGAR TAMPILKAN HALAMAN INI KETIKA PENUH

Edit virtual host:

sudo nano /etc/apache2/sites-available/000-default.conf

Tambahkan:

ErrorDocument 503 /maintenance.html RewriteEngine On RewriteCond %{REQUEST_STATUS} =503 RewriteRule .* /maintenance.html [R=503,L]

Restart:

sudo systemctl restart apache2

🟩 5. OPTIMASI PHP-FPM UNTUK 20 USER

Edit PHP-FPM pool:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

Atur:

pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 5

Restart:

sudo systemctl restart php8.1-fpm

🟦 6. OPTIMASI DATABASE (MariaDB/MySQL)

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Tambahkan:

innodb_buffer_pool_size = 512M innodb_log_file_size = 128M max_connections = 50

Restart:

sudo systemctl restart mariadb

🎉 HASIL AKHIR

Dengan konfigurasi di atas:

✔ Moodle berjalan stabil di VPS kecil

✔ Mampu menangani 20 user aktif dengan aman

✔ User tambahan akan otomatis “menunggu”

✔ Jika terlalu penuh → tampil halaman

“Server sedang penuh, silakan tunggu”

✔ Server tidak akan overload / tidak akan crash

✔ Tidak perlu plugin berbahaya

Post a Comment

0 Comments