antond.net

0 %
Anton Darmawanto
Front-end Developer
Ui/UX Designer
  • Residence:
    Indonesia
  • City:
    Jakarta Selatan
  • Age:
    40
Indonesian
English
Jawa
html
CSS
Js
PHP
WordPress
Proxmox
Laravel
Linux server (ubuntu, debian, fedora)
Alibaba Cloud
  • Proxmox, Vm Ware
  • Stylus, Sass, Less
  • Gulp, Webpack, Grunt
  • GIT knowledge
0

No products in the cart.

Return To Shop

Cara Membuat Service Nginx dan PHP-FPM Auto-Restart Otomatis Saat Crash di VPS Linux Ubuntu via Systemd

02/11/2026

Salah satu mimpi buruk terbesar bagi pemilik website dan administrator server di Indonesia adalah bangun di pagi hari dan mendapati situs web bisnis mereka sudah tidak bisa diakses selama berjam-jam.

Ketika Anda membuka terminal SSH dan memeriksa status server, Anda menemukan penyebabnya: layanan web server Nginx atau runtime PHP-FPM mendadak mati (crashed) akibat lonjakan trafik di tengah malam atau proses Out Of Memory (OOM Killer) yang dipicu oleh database. Secara bawaan, unit layanan systemd di Linux Ubuntu tidak selalu diatur untuk menghidupkan kembali service yang mati mendadak tersebut secara otomatis.

Kabar baiknya, Anda tidak memerlukan skrip pemantau rumit pihak ketiga. Manajer sistem bawaan Ubuntu dan Debian, yaitu systemd, memiliki fitur auto-restart tangguh yang bisa membangkitkan kembali layanan Nginx dan PHP-FPM dalam hitungan detik setelah terjadi crash.

Pemantauan status uptime dan keandalan peladen web VPS
Pemantauan status uptime dan keandalan peladen web VPS

Mengapa Harus Menggunakan Fitur Override Systemd?

Banyak administrator pemula melakukan kesalahan dengan mengedit langsung file konfigurasi utama service di /lib/systemd/system/nginx.service. Cara ini sangat tidak disarankan karena setiap kali sistem operasi melakukan pembaruan paket (via apt upgrade), file tersebut akan ditimpa kembali ke versi default pabrik dan pengaturan Anda akan hilang.

Cara standar industri yang benar adalah menggunakan mekanisme systemd drop-in override melalui perintah systemctl edit. Mekanisme ini membuat file konfigurasi terpisah yang tersimpan aman di direktori /etc/systemd/system/ dan tidak akan pernah terhapus oleh pembaruan sistem.

Langkah 1: Pasang Auto-Restart pada Layanan Nginx

Mari kita konfigurasikan layanan Nginx agar bangkit otomatis dalam lima detik jika mengalami crash:

  • Jalankan perintah override untuk Nginx di terminal SSH:
  • “`bash
  • sudo systemctl edit nginx.service
  • “`
  • Editor teks (biasanya Nano) akan terbuka dengan file kosong. Masukkan baris konfigurasi berikut:
  • “`ini
  • [Service]
  • Restart=on-failure
  • RestartSec=5s
  • StartLimitIntervalSec=60s
  • StartLimitBurst=5
  • “`
  • Tekan Ctrl + O lalu Enter untuk menyimpan, kemudian tekan Ctrl + X untuk keluar dari editor.

Penjelasan parameter penting di atas: – Restart=on-failure: Memerintahkan systemd untuk merestart Nginx hanya jika proses mati dengan kode kesalahan tidak normal (crash atau signal kill), bukan saat Anda sengaja mematikannya lewat perintah systemctl stop. – RestartSec=5s: Jeda waktu tunggu lima detik sebelum mencoba menghidupkan kembali service. – StartLimitIntervalSec=60s dan StartLimitBurst=5: Pelindung lingkaran setan (crash loop). Jika service crash lebih dari lima kali dalam satu menit karena kesalahan fatal (misalnya file konfigurasi salah), systemd akan berhenti mencoba agar server tidak kehabisan CPU.

Opsi Kebijakan RestartPerilaku Saat Service Mati NormalPerilaku Saat Service Crash / OOMRekomendasi Penggunaan
Restart=noTidak hidup kembaliTetap matiNilai standar paket Linux
Restart=alwaysSelalu hidup kembaliLangsung hidup kembaliService latar belakang mutlak
Restart=on-failureTetap mati jika dimatikanLangsung hidup kembaliTerbaik untuk Nginx dan PHP-FPM
Restart=on-abortTetap matiHidup kembali jika terkena abortKurang komprehensif
Infrastruktur pusat data peladen komputasi awan yang andal
Infrastruktur pusat data peladen komputasi awan yang andal

Langkah 2: Pasang Auto-Restart pada PHP-FPM

Runtime PHP-FPM adalah komponen yang paling rentan mengalami crash di server WordPress atau Laravel akibat script yang memakan memori berlebih.

Sesuaikan perintah berikut dengan versi PHP yang aktif di VPS Anda (misalnya PHP 8.2 atau 8.3):

  • Buka editor override untuk PHP-FPM:
  • “`bash
  • sudo systemctl edit php8.2-fpm.service
  • “`
  • Tambahkan baris konfigurasi yang sama persis:
  • “`ini
  • [Service]
  • Restart=on-failure
  • RestartSec=3s
  • StartLimitIntervalSec=60s
  • StartLimitBurst=5
  • “`
  • Simpan dan tutup editor.

Langkah 3: Terapkan Perubahan dan Uji Coba Lapangan

Agar konfigurasi baru terbaca oleh kernel systemd, muat ulang daemon sistem:

sudo systemctl daemon-reload

Sekarang, mari kita buktikan apakah sistem pemulihan otomatis ini benar-benar bekerja. Kita akan melakukan simulasi mematikan paksa seluruh proses PHP-FPM menggunakan sinyal kill:

sudo killall -9 php-fpm8.2

Tunggu sekitar 4 sampai 5 detik, lalu periksa status layanan PHP-FPM:

sudo systemctl status php8.2-fpm.service

Anda akan melihat baris status bertuliskan Active: active (running) dengan catatan waktu uptime yang baru saja ter-reset. Ini membuktikan bahwa systemd mendeteksi kematian proses dan langsung menghidupkannya kembali secara otomatis tanpa campur tangan manusia.

Kesimpulan

Dengan menerapkan konfigurasi Restart=on-failure pada Nginx dan PHP-FPM di VPS Linux Anda, risiko website mengalami downtime berkepanjangan dapat ditekan hingga titik terendah. Website bisnis Anda akan memiliki daya tahan tinggi dan tetap online meskipun sesekali terjadi benturan memori di server.

— Catatan editor: Referensi teknis: Manual dokumentasi resmi systemd.service(5) dari Proyek Freedesktop, praktik terbaik pengelolaan daemon Linux Ubuntu LTS, dan panduan administrasi web server Nginx. Disusun secara independen untuk administrator server di Indonesia.

Posted in TutorialTags: