[ฉันโพสต์คำถามนี้อย่างผิดพลาดใน stackoverflow]
บนเซิร์ฟเวอร์เดเบียนบัสเตอร์ของฉัน ฉันมี haproxy (v1.8) ที่ทำงานได้อย่างสมบูรณ์แบบ ซึ่งฉันใช้สำหรับจัดการใบรับรองสำหรับเว็บไซต์ของฉัน
haproxy ฟังพอร์ต 443 และส่งคำขอไปยังระบบ varnish+apache
เมื่ออัปเกรดเป็น debian bullseye บริการ haproxy (v2.2) จะไม่เริ่มทำงานอีกต่อไป และบันทึกระบุว่า:
haproxy[46308]: [ALERT] 048/004148 (46308) : การแยกวิเคราะห์ [/etc/haproxy/haproxy.cfg:46] : คำสั่ง 'reqadd' ไม่ได้รับการสนับสนุนอีกต่อไปตั้งแต่ HAProxy 2.1 ใช้ 'http-r
equest add-header' แทน
บรรทัด haproxy.cfg ที่รับผิดชอบพฤติกรรมนี้คือ
ฟรอนท์เอนด์ https
# ผูก 443 ด้วยใบรับรอง Letsencrypt ที่สร้างขึ้น
ผูก *:443 ssl crt /etc/letsencrypt/live/qumran2/haproxy.pem
# ตั้งค่า x-forward เป็น https
reqadd X-Forwarded-Proto:\ https <-----------|
# ตั้งค่า X-SSL ในกรณีของ ssl_fc <- อธิบายด้านล่าง
http-request set-header X-SSL %[ssl_fc]
# เลือกความท้าทาย
acl ให้เข้ารหัส-acl path_beg /.well-known/acme-challenge/
# ใช้แบ็กเอนด์ของความท้าทายหากมีการตั้งค่าความท้าทาย
default_backend www-แบ็กเอนด์
ฉันเข้าใจว่าฉันต้องเปลี่ยน reqadd X-Forwarded-Proto:\ https
เส้นแต่อย่างไร
เดอะ เอกสาร พูด:
http-request add-header <ชื่อ> <fmt> [ { ถ้า | ยกเว้น } <เงื่อนไข> ]
สิ่งนี้ผนวกฟิลด์ส่วนหัว HTTP ที่มีการระบุชื่อใน <ชื่อ> และ
ซึ่งค่าถูกกำหนดโดย <fmt> ซึ่งเป็นไปตามกฎรูปแบบบันทึก (ดู
รูปแบบบันทึกที่กำหนดเองในหัวข้อ 8.2.4) สิ่งนี้มีประโยชน์อย่างยิ่งในการผ่าน
ข้อมูลเฉพาะการเชื่อมต่อกับเซิร์ฟเวอร์ (เช่น SSL ของไคลเอ็นต์
ใบรับรอง) หรือเพื่อรวมหลายส่วนหัวเป็นหนึ่งเดียว กฎนี้ไม่ได้
ขั้นสุดท้าย ดังนั้นจึงเป็นไปได้ที่จะเพิ่มกฎอื่นที่คล้ายกัน โปรดทราบว่าส่วนหัว
การเพิ่มจะดำเนินการทันที ดังนั้นกฎหนึ่งข้อจึงอาจใช้ผลลัพธ์ซ้ำได้
ส่วนหัวจากกฎก่อนหน้า
ฉันไม่เข้าใจว่าฉันจะเขียนสิ่งที่เทียบเท่าได้อย่างไร http-request add-header
...