Score:2

วิธีแมปตำแหน่งกับเส้นทางใน NGINX

ธง vn

ฉันมีการตั้งค่า nginx ที่ฉันต้องการแมปเส้นทาง URL เฉพาะกับเส้นทางเซิร์ฟเวอร์ ตัวอย่างเช่นฉันต้องการ ตัวอย่าง.ทดสอบ/myapp/ เพื่อไปยังไดเร็กทอรีต่อไปนี้ในเซิร์ฟเวอร์: /apps/myapp/web

ฉันพยายามเพิ่มบล็อกตำแหน่งต่อไปนี้:

ที่ตั้ง /myapp/
{
    รูท /apps/myapp/web;
}

แต่ถ้าไป ตัวอย่าง.ทดสอบ/myapp/ หรือ example.test/myapp ฉันได้รับ 404

เท่าที่ฉันสามารถบอกได้ตาม เอกสาร ตำแหน่งนี้ควรจับภาพอะไรก็ได้ด้วยเส้นทางที่ขึ้นต้นด้วย /myapp/ และเป็นบล็อกตำแหน่งเดียวในเซิร์ฟเวอร์ ดังนั้นจึงไม่มีโอกาสเกิดข้อขัดแย้ง ฉันได้ลองเปลี่ยนตำแหน่งให้ชี้ไปที่รูท (เช่น ที่ตั้ง /) และใช้งานได้ดี จึงไม่มีปัญหาเรื่องเส้นทางเซิร์ฟเวอร์ผิดหรือไฟล์หายไป ฉันพลาดอะไรไป

Score:5
ธง us

nginx แก้ไขเส้นทางไฟล์โดยใช้กลยุทธ์ต่อไปนี้:

  1. ใช้เส้นทางจาก ราก คำสั่ง
  2. เพิ่ม URI จากคำขอหลังคำสั่ง

ในกรณีของคุณ:

  1. ราก เป็น /apps/myapp/web.
  2. URI จาก ตัวอย่าง.ทดสอบ/myapp/ เป็น /myapp/.

ดังนั้น nginx จึงค้นหาไฟล์ใน /apps/myapp/web/myapp/ ไดเรกทอรีสำหรับคำขอนั้น

ถ้าคุณต้องการที่ /myapp/ URI จะรับไฟล์จาก /apps/myapp/เว็บ/ ไดเร็กทอรี คุณต้องใช้ไฟล์ นามแฝง คำสั่ง:

ตำแหน่ง /myapp/ {
    นามแฝง /apps/myapp/web/;
}
vn flag
ขอบคุณ! ที่ฉันหันไปคือตัวอย่างในเอกสารที่พวกเขาพูดว่า: `location ~ \.(mp3|mp4) { root /www/media; }` จะส่งคืนไฟล์วิดีโอทั้งหมดที่ `www/media` ตำแหน่งคำนำหน้าจึงต่อท้าย URI แต่ตำแหน่งนิพจน์ทั่วไปไม่มี
us flag
ใช่ นิพจน์ทั่วไปไม่ต่อท้าย URI เนื่องจากเป็นการยากที่จะระบุว่าส่วนใดของการจับคู่นิพจน์ทั่วไปควรต่อท้าย
co flag
@Mattia ไม่ ตำแหน่ง regex เป็นไปตามกฎเดียวกันกับการบล็อกตำแหน่งปกติ URL `/myapp/test.mp4` ราก `/www/media` กลายเป็น `/www/media/myapp/test.mp4`
vn flag
การใช้นามแฝงส่งผลให้ส่งคืน 403 สำหรับทุกสิ่ง (ฉันรู้ว่าจริง ๆ แล้วมันไม่ใช่ปัญหาเรื่องสิทธิ์เนื่องจากฉันสามารถเซิร์ฟเวอร์ไฟล์ด้วยบล็อคตำแหน่งที่ตั้งอื่น ๆ ได้) ได้รับการแก้ไขโดยเพิ่มเครื่องหมายทับต่อท้ายชื่อแทน: `alias /apps/myapp/web/` ไม่แน่ใจว่าเป็นเพราะอะไร...
us flag
น่าสนใจ. ฉันไม่ได้ใช้ `นามแฝง` ด้วยตัวเอง ดังนั้นฉันไม่รู้ว่ามันต้องใช้เครื่องหมายทับในตอนท้าย ดีที่คุณเข้าใจฉันอัปเดตคำตอบแล้ว

โพสต์คำตอบ

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