Score:0

คำสั่งตำแหน่ง nginx ไม่ส่งคืนสถานะ http

ธง us

หมายเหตุ: ฉันได้อ่านคำถาม/คำตอบหลายข้อเกี่ยวกับ 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;
}
Score:1
ธง za

เพราะสิ่งที่น่ารังเกียจเมื่อคุณใช้ ผลตอบแทน ไม่ผูกมัดใดๆ ที่ตั้ง {}. ใส่ของคุณ กลับ 412 ข้างใน ที่ตั้ง / {} แล้วจะมีแต่ความสุขความสำราญ

ป.ล. เมื่อเว็บเซิร์ฟเวอร์ของคุณส่งคืนคำตอบที่ว่างเปล่า คุณควรใช้สถานะ 204 ไม่ใช่ 200 ทั้งสองจะใช้ได้ แต่ 204 แสดงว่าคุณรู้สิ่งต่างๆ

us flag
ขอบคุณ. ฉันมาจากพื้นหลังของ Windows และเพิ่งสันนิษฐานว่าคำสั่ง `return` เป็นการลัดวงจรและออกจากการกำหนดค่า เพิ่มบล็อก `ตำแหน่ง / { } ` และทุกอย่างเรียบร้อยดี

โพสต์คำตอบ

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