Setelah empat bulan menggunakan Nginx di lingkungan produksi, dan mulai terbiasa dengan server block, beberapa hari yang lalu saya menemui masalah ketika salah satu web app yang sedang saya kerjakan mengharuskan saya untuk menambah fasilitas unggah berkas dalam ukuran relatif besar untuk setiap berkasnya.

Nasihat dari StackOverflow

Seingat saya di PHP ada pembatasan ukuran berkas unggahan, serta waktu eksekusi sebuah script. Setelah saya cari-cari, ternyata pembatasan serupa juga terdapat di konfigurasi Nginx.

Usai perubahan konfigurasi saya lakukan, baik di php.ini maupun nginx.conf di komputer lokal, berkas berhasil diunggah tanpa ada kendala. Tentunya, karena proses pengunggahan di komputer lokal tidak melalui jaringan internet, maka hanya memerlukan satu kedipan mata saja.

Masalah baru muncul ketika di virtual server kantor. Meskipun sudah dilakukan perubahan konfigurasi PHP dan Nginx —yang bahkan sama persis dengan komputer lokal saya, kecuali pada bagian client_body_timeout dan max_execution_time yang sengaja saya perbesar value-nya— tetap saja belum bisa unggah berkas dengan ukuran besar.

Tidak berhenti sampai di situ, saya pun mencoba untuk untuk mengubah konfigurasi yang ada di server block seperti yang termaktub dalam salah satu postingan di StackOverflow, dan melakukan beberapa kali restart. Namun, hasilnya tetap saja “413 Request Entity Too Large”.

Mengecek Versi

Entah kenapa saya tergelitik untuk mengecek versi Nginx yang terpasang di server dengan perintah nginx -v, kemudian saya bandingkan dengan yang terdapat di komputer lokal. Sama, keduanya menggunakan versi 1.10.3.

Namun, saya sedikit terkejut ketika melihat perbedaan versi antara di server yang diakses via ssh, dengan versi yang tampil di browser pada saat muncul pesan kesalahan.

Hm… Nampaknya ada yang janggal di sini

Kilas Balik

Melihat berkali-kali file konfigurasi diubah dan server di-restart tanpa adanya perubahan pada hasil, ditambah dengan perbedaan versi Nginx antara server via ssh dengan yang nampak di browser, saya jadi ingat pada masa lalu di awal-awal belajar PHP, mungkin sekitar 7-8 tahun silam.

Saat itu saya sering kali mengubah file pada text editor tanpa ada hasil di browser, meskipun sudah dilakukan refresh dan penghapusan cache. Kesalahan konyol yang saya lakukan saat itu adalah salah mengubah file. Bisa jadi terdapat dua buah file yang sama, namun bernaung di dalam folder yang berbeda.

Kemungkinan ini pula yang terjadi beberapa waktu lalu, bedanya file yang “kembar” itu terletak dalam dua server yang terpisah!

Dan Ternyata…

Ternyata benar dugaan saya. Setelah bertanya ke Kasie IT, beliau menyebutkan bahwa semua request yang menuju ke server tempat saya menaruh kode sumber, harus melalui satu server terlebih dahulu tempat sertifikat SSL diletakkan. Berita baiknya, server tersebut juga menggunakan Nginx.

Alhamdulillah, sesudah meminta agar nginx.conf yang terdapat di server SSL ikut diseragamkan, proses pengunggahan file berjalan lancar.


Saya sedikit terkejut ketika melihat perbedaan versi antara di server yang diakses via ssh, dengan versi yang tampil di browser.

Miftah Afina