Saya punya contoh berikut
location / {
proxy_read_timeout 2000;
proxy_next_upstream error;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass_header X_CUSTOM_HEADER;
proxy_redirect off;
proxy_max_temp_file_size 0;
proxy_pass https://prod;
break;
}
Sekarang ketika saya menggunakan garis ikal berikut
curl --head -H "X_CUSTOM_HEADER: foo" http://domain.com/api/test
Sekarang tidak berfungsi .. apache / php di backend tidak melihat header. Jika saya memotong nginx itu berfungsi
curl --head -H "X_CUSTOM_HEADER: foo" http://web1.domain.com/api/test
nginx
http-headers
Mike
sumber
sumber
Anda harus menggunakan
proxy_set_header
untuk semua header yang ingin Anda teruskan ke server backend. Jadi, bukannyaproxy_pass_header ...
baris:sumber
Di atas tidak bekerja untuk saya juga jadi saya gunakan
proxy_pass_header
. Lihat Nginx Wiki tentang proxy_pass_header di sini .Jika tajuk khusus Anda
device_id
ditambahkanproxy_pass_header device_id;
ke blok Proxy Anda.Jika Anda menggunakan customheaders dengan garis bawah di dalamnya (seperti saya), pastikan untuk memastikan Anda memiliki
underscores_in_headers on
di Nginx Config Anda.sumber
Secara default nginx meneruskan semua ( proxy_pass_request_headers on; ) header ke server backend. Tetapi jika tajuk permintaan Anda (mungkin tajuk khusus) menyertakan garis bawah (_) dalam nama tajuk lalu nginx memblokir tajuk tersebut.
Untuk mengaktifkan Nginx untuk melewatkan semua atau tajuk yang diminta khusus ke belokan backend pada opsi garis bawah aktif.
sumber