Masalah paling menjengkelkan di server produksi bukan saat server mati total. Masalah justru muncul ketika server tetap hidup, ping lancar, SSH terbuka, tetapi layanan utama tidak bisa diakses. Website gagal terbuka, aplikasi berhenti merespons, dan dashboard kosong. Kondisi ini sering membuat admin salah arah.
Saya pernah mengalami kondisi ini di server produksi. Server berjalan normal. CPU ringan, RAM stabil, dan storage aman. Semua container Docker juga berjalan. Namun, layanan utama tidak merespons permintaan dari luar. Dari kejadian ini, saya menarik satu kesimpulan penting: status server tidak pernah menjamin layanan berjalan normal.
Alasan Server Hidup Tapi Layanan Mati
Kondisi ini sering muncul di server dengan banyak service, terutama server yang memakai Docker dan reverse proxy. Berikut penyebab yang paling sering saya temui langsung di lapangan.
Service di Dalam Container Berhenti Jalan
Docker hanya menjaga container tetap aktif. Docker tidak memeriksa apakah service di dalam container masih berjalan. Banyak admin tertipu oleh status container yang terlihat sehat, padahal proses utama sudah berhenti.
Kesalahan konfigurasi, environment variable keliru, atau aplikasi gagal start sering memicu kondisi ini. Admin harus mengecek proses secara langsung dari dalam container.
docker exec -it nama_container ps aux
Jika proses utama tidak muncul, layanan sudah berhenti walaupun container masih aktif.
Port Layanan Bertabrakan
Di server produksi, tabrakan port sering terjadi tanpa tanda jelas. Service baru gagal memakai port karena service lain sudah lebih dulu menggunakannya. Akibatnya, layanan tidak merespons walaupun container tetap berjalan.
Admin bisa memastikan kondisi port dengan perintah berikut.
ss -tulpen | grep LISTEN
Jika server sudah memakai port tersebut, layanan baru pasti gagal berjalan.
Reverse Proxy Salah Arah
Reverse proxy sering berjalan normal di permukaan, tetapi salah mengarahkan trafik ke backend. Kondisi ini muncul ketika container backend berada di network berbeda atau admin lupa memperbarui port backend.
Akibatnya, domain gagal terbuka walaupun backend tetap hidup.
DNS Internal Docker Bermasalah
Docker sangat bergantung pada DNS internal. Saat DNS gagal bekerja, layanan tidak bisa terhubung ke database atau API. Hal ini sering memicu loading lama lalu timeout.
Admin bisa menguji DNS langsung dari dalam container.
docker exec -it nama_container ping google.com
Jika DNS gagal resolve, layanan pasti ikut terganggu.
Firewall Memutus Akses Layanan
Firewall sering memblokir trafik tanpa peringatan jelas. Update sistem, install ulang Docker, atau rule lama yang tertinggal sering memicu masalah ini. Server tetap hidup, tetapi trafik tidak pernah sampai ke layanan.
Baca Juga:
- Docker Tidak Bisa Akses Internet
- Install Nginx Proxy Manager di Docker
- Monitoring Docker Container via WhatsApp
Urutan Cek Paling Aman di Produksi
Saat layanan mati tetapi server tetap hidup, saya selalu memakai urutan cek berikut.
- Periksa service di dalam container
- Pastikan tidak ada tabrakan port
- Samakan network reverse proxy dan backend
- Uji DNS langsung dari container
- Periksa rule firewall dan iptables
Dengan urutan ini, admin biasanya menemukan sumber masalah tanpa perlu restart server.
Penutup
Status server hidup hanya menunjukkan mesin masih berjalan. Di server produksi, layanan harus bisa diakses tanpa gangguan. Karena itu, admin perlu memantau layanan, bukan hanya CPU dan RAM.
Jika user mulai komplain saat server terlihat sehat, jangan langsung reboot. Masalah hampir selalu muncul di level service.
