Saya memiliki masalah dengan server HAProxy. Saya ingin meneruskan dalam header IP klien. Saya hampir melakukannya, tetapi ada kasus yang menarik dan saya tidak bisa mengetahuinya. Saya perlu menulis IP klien di 2 tempat di header, di tag X-CLIENT-IP dan X-FORWARDED-FOR.
Masalahnya adalah: Saat saya gunakan
option http-server-close
option forwardfor
Pada server target saya lihat di header X-FORWARDED-FOR = xxx.xxx.xxx.xxx (ip klien) tetapi tidak ada header x-client-ip.
Ketika saya menggunakan:
option forwardfor header X-Client-IP
option http-server-close
Pada server target saya melihat header X-CLIENT-IP = xxx.xxx.xxx (IP klien) tetapi X-FORWARDED-FOR = xxx.xxx.xxx.xxx (HAProxy ip)
Saya perlu melihat pada header target di mana X-CLIENT-IP dan X-FORWARDED-FOR memiliki nilai IP klien.
Saya mencoba mencampur konfigurasi seperti
option forwardfor
option forwardfor header X-Client-IP
option http-server-close
Tidak berpengaruh. Saya juga tidak bisa menginstal modul apa pun. Targetnya adalah IIS.
Ada ide? :(
Jika Anda ingin menggunakan keduanya, Anda harus menambahkan yang kedua dengan
http-request
kata kunci.sumber
X-CLIENT-IP
tidak diatur oleh klien, melainkan oleh HAProxy berdasarkan IP sumber. Saya sarankan meninggalkan komentar ini pada pertanyaan-pertanyaan di mana ia adalah relevan agar tidak pembaca bingung.add-header
tidak menghapusX-CLIENT-IP
yang mungkin telah ditetapkan oleh klien. Inilah sebabnya mengapa @Der_Meister disarankan untuk menggunakannyaset-header
. Saya sarankan mengedit jawaban Anda untuk digunakanset-header
sebagai gantinya.Jawaban yang disarankan di atas yang tidak berfungsi untuk KacproSo hanya perlu membaca nilai dengan menambahkan
&[...]
, jadi ini akan berfungsi dengan baik:sumber
Mencoba pada HAproxy 1.7 ini adalah sintaks yang benar yang membuat ini bekerja, tanpa tanda kurung siku di sekitar X-Forwarded-For
sumber
Anda dapat menginstal modul bernama mod_rpaf di server backend Anda. Ini menyalin X-FORWARDED-FOR IP ke X-CLIENT-IP. Untuk informasi lebih lanjut, lihat ini . Pada Windows Anda harus memiliki modul yang serupa, seperti filter X-Forwarded-For ASAPI.
sumber