nginx
Catatan teknis seputar web development, DevOps, dan integrasi AI.
5 artikel
- 20.43backend
Batas Upload 8 MiB: Satu Angka, Empat Lapisan
Satu batas upload bukan satu setting: FastAPI ternyata tidak menolak berkas besar. Gerbang aslinya ada di browser, nginx, dan Next.js.
TL;DR: Unggahan 8,5 MiB di KotaPortal gagal nyeleneh, tadinya dikira FastAPI yang nolak. Ternyata FastAPI nggak nolak otomatis, gerbangnya ada di empat tempat: browser, nginx (default 1 MiB), Server Actions Next.js (default 1 MB), dan kode aplikasi. Solusinya gampang: samain konstanta 8 MiB di keempat lapisan biar nggak ada celah.
#file-upload#nginx#fastapi - 22.51devops
Menutup Pintu Tidak Menyembunyikan Laci
Port deploy ditutup, /.git/ tetap kebaca lewat hostname staging. Dua lapis penutup berikutnya: guard regex nginx edge dan network split api/db.
TL;DR: Tutup port inbound doang ternyata belum cukup aman, soalnya path sensitif kayak .git dan .env masih kebuka lewat hostname staging. Solusinya tiga lapis: blokir dotfiles di nginx edge, pisah network Docker per kelompok service biar nggak ada jalur lateral, plus server_tokens off buat sembunyiin versi. Kuncinya, satu lapis nggak cukup, harus saling nutup lubang.
#nginx#docker#devops - 04.42backend
IP Klien yang Bisa Dipercaya di Balik Proxy
Header X-Forwarded-For bisa diisi sembarang oleh klien. Begini cara memilih alamat yang benar-benar bisa dipercaya di balik Cloudflare dan nginx.
TL;DR: Gara-gara serangan tebak password, endpoint login dikasih rate limiter, tapi awalnya salah baca IP dari entri pertama X-Forwarded-For yang gampang dipalsuin penyerang. Sekarang urutan resolusinya diubah: CF-Connecting-IP dulu, lanjut entri terakhir XFF, X-Real-IP, lalu RemoteAddr. Rate limitnya juga per akun (IP plus email), bales 429 dengan Retry-After, plus ada pembersihan memori biar nggak bocor.
#go#security#nginx - 12.31devops
Dashboard Dibuang, Dipanggil Balik
Buang stack GoAccess DIY, pindah ke admin bawaan 3proxy mode counters-only, lalu sadar pertanyaan berubah: GoAccess dipanggil balik di belakang nginx.
TL;DR: Penulis sempat hapus GoAccess dan ganti pakai admin service bawaan 3proxy, cuma tiga baris config. Ternyata counter bawaan cuma jawab "berapa traffic", nggak bisa nunjukin URL mana yang paling boros bandwidth. Jadi GoAccess balik lagi buat breakdown per-URL, sekarang dua-duanya dipakai sesuai kebutuhan masing-masing.
#3proxy#goaccess#nginx - 10.31devops
Situs Dibilang Kena DDoS, Log Nginx Bilang Lain
Laporan DDoS berakhir di log: 80 persen request 504 persis tiap jam, limit_req tak pernah terpicu, pelakunya PHP-FPM kehabisan worker.
TL;DR: Laporan dugaan DDoS ternyata gelombang 504 periodik tiap jam akibat antrean PHP-FPM yang macet, bukan serangan. Rate limit tak pernah terpicu karena $binary_remote_addr menangkap IP Cloudflare, bukan IP asli pengunjung. Solusinya: aktifkan cache Cloudflare, sesuaikan pool PHP-FPM, dan atur logrotate untuk log dalam container.
#nginx#docker#cloudflare