Score:1

โปรดช่วยด้วยพยายามตั้งค่าพร็อกซี nginx ย้อนกลับแบบไดนามิก แต่ล้มเหลว

ธง cn

โปรดช่วยด้วย ฉันกำลังพยายามตั้งค่าพร็อกซีย้อนกลับแบบไดนามิกเพื่อที่ฉันจะได้ไม่ต้องทำการเปลี่ยนแปลงโดยตรงกับ nginx สิ่งที่ฉันต้องการบรรลุคือการสร้างตำแหน่งเริ่มต้นโดยพูดว่า:

ตำแหน่ง ~ ^/staging/v1/(.*) {
      ตัวแก้ไข 4.2.2.2
      proxy_pass https://$1$is_args$args;
}

ดังนั้น สมมติว่า URL เซิร์ฟเวอร์พร็อกซีย้อนกลับของ Nginx คือ example.com และฉันไปที่ example.com/staging/v1/test.com เซิร์ฟเวอร์พร็อกซีย้อนกลับจะพร็อกซีคำขอของฉันไปยัง test.com พร้อมพาธและอาร์กิวเมนต์ทั้งหมด

อย่างไรก็ตาม ดูเหมือนว่าจะได้ผลโดยมีข้อผิดพลาดมากมาย อย่างแรกคือโหลดหน้าว่าง แต่ถ้าฉันเพิ่มโดเมนในตำแหน่งรูท nginx เช่น:

  ที่ตั้ง / {

               proxy_pass test.com;
       }

สิ่งนี้จะทำให้คำขอเช่น example.com/staging/v1/test.com/app/login.png เริ่มทำงาน

ได้โปรดฉันต้องการความช่วยเหลือ

Ivan Shatsky avatar
gr flag
คุณต้องส่งส่วนหัว HTTP ของ [`Host`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host) ที่ถูกต้องพร้อมกับคำขอของคุณ คุณจะต้องแบ่ง URI ที่เหลือออกเป็นสองส่วน และใช้ส่วนแรกเพื่อตั้งค่าโดยใช้คำสั่ง `proxy_set_header` ตรวจสอบ[นี้](https://serverfault.com/a/1100774/498657)คำตอบเพื่อดูข้อมูลเพิ่มเติม
henry chidiebere avatar
cn flag
ขอบคุณ @IvanShatsky อย่างไรก็ตาม ฉันไม่สามารถหาวิธีแบ่ง URI ออกเป็นสองส่วนและวิธีตั้งค่าส่วนหัวของพร็อกซีด้วย คุณช่วยด้วยวิธีที่ชัดเจนในการทำงานนี้ได้ไหม
Score:1
ธง gr

คุณต้องส่งที่ถูกต้อง เจ้าภาพ ส่วนหัว HTTP พร้อมคำขอของคุณ คุณจะต้องแบ่ง URI ที่เหลือออกเป็นสองส่วน และใช้ส่วนแรกในการตั้งค่า proxy_set_header คำสั่ง ตรวจสอบ นี้ คำตอบเพื่อหาข้อมูลเพิ่มเติม

เนื่องจากส่วนของชื่อโฮสต์ไม่มีเครื่องหมายทับ คุณจึงใช้รูปแบบ regex ต่อไปนี้แทนได้

ตำแหน่ง ~ ^/staging/v1/([^/]+)(?:/(.*))? {
    ตัวแก้ไข 4.2.2.2;
    proxy_set_header โฮสต์ $1;
    proxy_pass https://$1/$2$is_args$args;
}
henry chidiebere avatar
cn flag
ขอบคุณมาก Ivan อย่างไรก็ตาม มันสร้างผลลัพธ์ที่คล้ายกัน ลิงก์เสียในหน้าเป็นผลมาจาก URL ที่ไม่ถูกต้อง ตัวอย่างเช่น เมื่อฉันตรวจสอบหน้าเว็บ หนึ่งในภาพที่เสียหายมี URL เช่น example.com/images/pic.png อย่างไรก็ตาม หากฉันแก้ไข URL รูปภาพด้วย example.com/staging/ 1/test.com/images/pic.png รูปภาพจะโหลดสำเร็จ ฉันได้ลองใช้ sub_filter เพื่อแก้ไข url วัตถุแล้ว แต่ไม่สำเร็จ ขอบคุณอีกครั้งสำหรับความช่วยเหลือ ฉันซาบซึ้งจริงๆ
Ivan Shatsky avatar
gr flag
ฉันไม่แน่ใจว่าเป็นไปได้ที่จะสร้างชุดกฎ `sub_filter` ที่เป็นสากลซึ่งจะใช้ได้กับทุกไซต์ เมื่อพูดถึง JS ที่ซับซ้อน มันจะเป็นไปไม่ได้เลย คุณสามารถตรวจสอบคำตอบ SF/SO อื่นๆ ได้: [1](https://serverfault.com/a/932636/498657), [2](https://stackoverflow.com/a/70012067/7121513) คุณต้องใช้ `/staging/v1/$1` เป็นคำนำหน้าในกฎการแทนที่ของคุณ

โพสต์คำตอบ

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