ข้อผิดพลาดนี้ไม่มีส่วนเกี่ยวข้องกับ nginx เอง (เกือบจะไม่มีอะไรเลย) มันถูกส่งคืนโดยแบ็กเอนด์อัปสตรีมของคุณ เหตุผลคือส่วนหัวคำขอ HTTP สองรายการรวมถึง เจ้าภาพ
หนึ่งจะได้รับการกำหนดใหม่เสมอเว้นแต่จะมีพฤติกรรมอื่นที่ระบุอย่างชัดเจนโดยใช้ proxy_set_header
คำสั่ง:
ตามค่าเริ่มต้น จะมีการกำหนดใหม่เพียงสองฟิลด์เท่านั้น:
proxy_set_header โฮสต์ $proxy_host;
ปิดการเชื่อมต่อ proxy_set_header;
เดอะ เจ้าภาพ
ค่าส่วนหัวของคำขอที่ส่งต่อจะเป็น bbs_server_pools
ด้วยการกำหนดค่าแรกของคุณและ บีบีเอส
กับอันที่สอง อย่างไรก็ตาม อักขระที่ถูกต้องสำหรับชื่อโฮสต์คืออักษร ASCII จาก ก
ถึง ซี
,หลักจาก 0
ถึง 9
และยัติภังค์ (-
).แม้ว่าเครื่องหมายขีดล่างจะเป็นอักขระที่ถูกต้องสำหรับชื่ออัปสตรีม nginx แต่จะใช้ไม่ได้กับชื่อโฮสต์ และนั่นคือสาเหตุของข้อผิดพลาดที่คุณได้รับจากอัปสตรีม มักจะเป็นความคิดที่ดีที่จะเก็บ เจ้าภาพ
ค่าส่วนหัวจากคำขอเดิมโดยใช้
proxy_set_header โฮสต์ $host;
(หรือ $http_host
คุณสามารถตรวจสอบความแตกต่าง ที่นี่). อย่างไรก็ตาม อาจมีบางกรณีที่คุณไม่ควรทำ ตรวจสอบ นี้ คำตอบเพื่อค้นหาข้อมูลเพิ่มเติมในเรื่องนี้