Score:0

nginx วิธีแทนที่ try_files ด้วย proxy_pass ที่มีหลายเส้นทาง

ธง us

ฉันมีชุดกฎใน Nginx ประเภทนี้:

สถานที่ ~ ^/race/[a-z0-9\-_]*/session/[a-z0-9\-]*/topic/[a-z0-9\-_]*$ {
   try_files $uri $uri/ /race/period/session/team/topic/index.html;
}

ตำแหน่ง /รูปภาพ/เนื้อหา/ {
   try_files /backup/data$uri /default_images/small_asset.png =404;
}

กฎเหล่านี้ทำงานเมื่อมีไฟล์อยู่บนเซิร์ฟเวอร์ แต่ตอนนี้ข้อมูลอยู่ในตำแหน่งระยะไกล (AWS - S3+cloudfront) ฉันต้องใช้ proxy_passแต่สงสัยว่าจะจัดการกับกรณีที่ฉันมีทางเลือกหลายทางเช่นอย่างไร

try_files $uri $uri/ /race/period/session/team/topic/index.html;

และ

try_files /backup/data$uri /default_images/small_asset.png =404;

วิธีจัดการเส้นทางแรกในจุดสิ้นสุดการลบ เช่น:

ตำแหน่ง /รูปภาพ/เนื้อหา/ {
   proxy_pass http://abc.cloudfront.net/backup/data 
   #แต่ถ้าได้404มานี่ถอยยังไงครับ: 
   proxy_pass http://abc.cloudfront.net/default_images/small_assets.png
}

ความคิดใด ๆ ? ไม่จำเป็น ฉันต้องใช้ Nginx ในตอนนี้ที่เนื้อหาถูกโฮสต์จากระยะไกล เปิดให้ทางเลือกใดก็ได้

Richard Smith avatar
jp flag
หากต้องการสำรอง 404 คุณจะต้องใช้ `error_page` ดู[เอกสารนี้](http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page)
us flag
มีความคิดว่าจะจัดการกับ regex อย่างไรเมื่อใช้ proxy_pass

โพสต์คำตอบ

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