Score:0

การเปลี่ยนเส้นทางที่ไม่คาดคิดหากเซิร์ฟเวอร์อัปสตรีมเปลี่ยนเส้นทางใน nginx proxy_pass โดยระบุ URI

ธง cn

นี่คือบล็อกเซิร์ฟเวอร์พร็อกซีย้อนกลับของฉัน

เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name test.com;

    ที่ตั้ง / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header โฮสต์ $host;
    }
}

ฉันสร้างจุดสิ้นสุดทั้งหมดในเซิร์ฟเวอร์อัปสตรีมของฉันโดยไม่มีเครื่องหมายสแลชต่อท้าย เปลี่ยนเส้นทางจุดสิ้นสุดสแลชต่อท้ายทั้งหมดไปยังจุดสิ้นสุดสแลชที่ไม่ต่อท้ายในเซิร์ฟเวอร์อัปสตรีมของฉันด้วย test.com/fo/ จะเปลี่ยนเส้นทางไปที่ test.com/fooทุกอย่างเรียบร้อยดีจนกระทั่งฉันต้องการพรอกซี ทดสอบ.คอม ถึง http://127.0.0.1:8080/app/นี่คือบล็อกเซิร์ฟเวอร์

เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name test.com;

    ที่ตั้ง / {
        proxy_pass http://127.0.0.1:8080/app/;
        proxy_set_header โฮสต์ $host;
    }
}

และนี่คือสิ่งที่เกิดขึ้น:

  1. ทดสอบ.คอม เปลี่ยนเส้นทางไปที่ test.com/app, คาดหวัง ทดสอบ.คอม
  2. test.com/foo ยังคงเหมือนกับที่คาดไว้
  3. test.com/fo/ เปลี่ยนเส้นทางไปที่ test.com/app/foo, คาดหวัง test.com/foo

ไม่พบวิธีแก้ปัญหานี้ ความช่วยเหลือใด ๆ ?

Michael Hampton avatar
cz flag
ทำให้แอปพลิเคชันของคุณทราบว่าคุณได้เปลี่ยนเส้นทาง URL
billyzaelani avatar
cn flag
วิธีแก้ไขอยู่ในเซิร์ฟเวอร์บล็อกได้หรือไม่ ไม่ได้อยู่ในแอปพลิเคชัน
Michael Hampton avatar
cz flag
คุณจะต้องแก้ไขแอปพลิเคชัน
Richard Smith avatar
jp flag
ใช้ `curl -I http://test.com/foo/` เพื่อระบุค่าที่แน่นอนของส่วนหัวการตอบสนอง 'ตำแหน่งที่ตั้ง' และใช้ 'proxy_redirect' เพื่อเปลี่ยนแปลง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา