Nanank Haris S
Individu yang pendiam dan introspektif yang menemukan penghiburan di kedalaman sintaxdan mencoba menemukan kedamaian di tengah kekacauan. Meskipun bergulat dengan ADHD, cintanya kepada keluarganya tetap tak tergoyahkan, yang menopangnya di tengah badai kehidupan. Dalam pelukan pikirannya yang tenang, ia merajut algoritma yang rumit, mengubah perjuangannya menjadi kemenangan dan kesendiriannya menjadi tempat perlindungan.

Cara memperbaiki – Nginx tidak menerima request header dengan underscore

Baru-baru ini saya membuat sekumpulan kode untuk sekedar coba-coba mengembangkan Rest full API. Semua berjalan lancar ketika masih di localhost (ya iyalahhh), namun masalah muncul ketika saya upload ke vps dengan web server nginx (nging / en-jin-eks) dan ternyata ada request header yang saya kirimkan tidak sampai, atau dengan kata lain ada request header yang hilang. uwoowwww!!

Saya sempat frustasi sebenernya, untung masih diselamatkan suhu stackoverflow (Hayo siapa yang belum pernah melihat halaman antar muka web stackoverflow? untung saya sudah). Pada intinya nginx secara default hanya mengizinkan karakter – (hypen) sebagai penyambung nama variabel diheader. Usut punya usut ternyata hal ini merupakan legacy dari CGI yang mana hal ini dilakukan untuk mencegah ambiguitas saat memetakan header ke variabel CGI karena tanda hubung dan garis bawah dipetakan ke garis bawah selama proses tersebut. Nah coba baca deh  Missing (disappearing) HTTP Headers disitu sudah dijelaskan.

Nah agar Nginx dapat menerima header dengan garis bawah, maka kita perlu menambahkan parameter berikut ini di blok server konfigurasi Nginx.

server{
    listen 80;
    listen [::]:80;
    server_name cumadomainsaja.com;

    underscores_in_headers on;

    ...
}

Pastikan untuk mengecek apakah konfigurasinya benar dengan eksekusi nginx -t pada terminal. Jika sudah Ok restart nginx-nya service nginx restart.

Setelah berhasil restart seharusnya parameter header yang memakai underscore bisa terkirim ke server.
Semoga bermanfaat.

Share

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *