ในอินสแตนซ์ HAProxy ที่ทำงานบน K8S ฉันต้องบล็อกที่อยู่ IP บางอย่างด้วยตนเองบน HAProxy ขณะนี้ฉันไม่สามารถบันทึกได้ ตามเอกสาร AWS ตัวโหลดบาลานเซอร์ตั้งค่า X-ส่งต่อ-สำหรับ ส่วนหัวของคำขอและกรอกที่อยู่ IP ของลูกค้า
เมื่อพยายามบันทึกส่วนหัวนี้ (และด้วยเหตุนี้จึงเป็น IP ของไคลเอ็นต์) ฉันมักจะได้รับสตริงว่างด้วย HAProxy เวอร์ชัน 2.0.18 และ 2.2.20 ฉันเดาว่าฉันกำหนดค่า HAProxy ผิด การกำหนดค่าของฉันดูเหมือนว่า:
ทั่วโลก
ภูต
แม็กซ์คอน 256
บันทึกรูปแบบ stdout ดิบ local0
ค่าเริ่มต้น
โหมด http
ตัวเลือก httplog
ตัวเลือก dontlognull
หมดเวลาเชื่อมต่อ 15,000 มิลลิวินาที
ไคลเอ็นต์หมดเวลา 150000ms
หมดเวลาเซิร์ฟเวอร์ 150000ms
รายชื่อผู้ใช้ global_auth
ผู้ใช้ Someuser รหัสผ่านที่ไม่ปลอดภัย Somepass
http-in ส่วนหน้า
ผูก *:80
ผูก *:443 ssl crt /etc/certs/myapp-de.pem/cert_bundle_key.pem alpn h2,http/1.1
ตัวเลือก httplog
ตัวเลือก dontlognull
ส่วนหัวคำขอจับภาพ X-Forwarded-For len 500
จับภาพส่วนหัวคำขอ x-forwarded-for len 500
รูปแบบบันทึก "ส่วนหัว = --%hr--, --%hrl-- | ส่วนหัว2: --%[capture.req.hdr(0)]--, --%[capture.req.hdr(1) ]--"
เข้าสู่ระบบทั่วโลก
acl host_ssl_exception hdr(โฮสต์) -i job.myapp.com
รูปแบบการเปลี่ยนเส้นทาง https รหัส 301 ถ้า !{ ssl_fc } !host_ssl_exception
acl is_post เมธอด POST|OPTIONS
acl is_get เมธอด GET
default_backend myapp-เว็บ
แบ็กเอนด์ myapp-web
โหมด http
การบีบอัดด้วย gzip
ประเภทการบีบอัดข้อความ/ข้อความ html/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชันจาวาสคริปต์/json
เซิร์ฟเวอร์ web1 myapp-web.myapp-${TRACK}.svc.cluster.local:80 maxconn 32 ตรวจสอบคุกกี้
ลบแบ็กเอนด์ทั้งหมดยกเว้นหนึ่งรายการ เปิดใช้งาน HTTPS และ HTTP2 เดอะ การจับกุม ดูเหมือนจะล้มเหลว แต่ตอนนี้ฉันไม่เข้าใจว่าทำไม