หมายเหตุ: ฉันได้อ่านคำถาม/คำตอบหลายข้อเกี่ยวกับ SO, ServerFault และอื่น ๆ ... แต่ดูเหมือนจะไม่มีคำตอบใดที่ใช้ได้
เรียกใช้เว็บเซิร์ฟเวอร์ AWS ec2 Ubuntu (v20.04) พร้อมการกำหนดค่าพื้นฐาน nginx (v1.18) อย่างไรก็ตาม ที่ตั้ง
คำสั่งสำหรับ /a-เส้นทางที่กำหนดเอง
การส่งคืนรหัสสถานะ http ที่ 200 จะไม่ถูกประมวลผลและ/หรือถูกประมวลผลและละเว้น
นี่คือการกำหนดค่า:
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
ชื่อเซิร์ฟเวอร์ _;
สถานที่ / เส้นทางที่กำหนดเอง {
access_log off;
add_header ประเภทเนื้อหา ข้อความ/ธรรมดา;
ส่งคืน 200 'ตกลง';
}
access_log /var/log/nginx/unknown.log;
กลับ 412;
}
เดอะ สถานที่ /a-เส้นทางที่กำหนดเอง
ไม่เคยคืนสถานะ 200; มันมักจะผ่านการตอบกลับ 412 ฉันได้ลองใช้คำสั่งสถานที่ต่างๆ เช่น:
สถานที่ /a-เส้นทางที่กำหนดเอง
ตำแหน่ง /a-เส้นทางที่กำหนดเอง/
สถานที่ = /a-เส้นทางที่กำหนดเอง
สถานที่ = /a-เส้นทางที่กำหนดเอง/
อย่างไรก็ตามพวกเขาทั้งหมดมีพฤติกรรมเดียวกันในการตกสู่ 412
การตอบสนอง.
คำถาม
ฉันจะสร้างเส้นทางตำแหน่งที่กำหนดเองซึ่งส่งคืนการตอบกลับ 200 รายการและคำขออื่นๆ ทั้งหมดส่งคืนการตอบกลับ 412 รายการได้อย่างไร
แก้ไข - แก้ไข & กำหนดค่าการทำงาน
สำหรับใครก็ตามที่พบคำถามนี้ นี่คือวิธีแก้ปัญหาการทำงานขั้นสุดท้ายตามคำตอบที่ยอมรับ:
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
ชื่อเซิร์ฟเวอร์ _;
# ทุกอย่างยกเว้น '/a-custom-path' ได้รับการตอบสนอง 412
ที่ตั้ง / {
กลับ 412;
}
สถานที่ / เส้นทางที่กำหนดเอง {
ส่งคืน 200 'ตกลง';
access_log off;
add_header ประเภทเนื้อหา ข้อความ/ธรรมดา;
}
access_log /var/log/nginx/unknown.log;
}