Score:0

อักขระที่ไม่รู้จักติดตาม \ ใน "\index.htm(l?)" หลังจากอัปเดตเป็น nginx 1.21.5

ธง vn

อิมเมจนักเทียบท่าของฉันล้มเหลวทันทีหลังจากสร้างด้วยข้อความแสดงข้อผิดพลาด:

2021/12/30 16:02:26 [ฉุกเฉิน] 16#16: pcre2_compile() ล้มเหลว: อักขระที่ไม่รู้จักตามด้วย \ ใน "\index.htm(l?)" ที่ "index.htm(l?)" ใน /etc/nginx/conf.d/default.conf:37

เรากำลังสร้างอิมเมจนักเทียบท่าจาก nginx:latest ซึ่งปัจจุบันคือ 1.21.5

ฉันลดระดับเป็น nginx 1.21.4 และเริ่มทำงานโดยไม่มีปัญหา

การกำหนดค่าที่เป็นปัญหาของฉันคือ:

    ตำแหน่ง ~* \index.htm(l?) {
        add_header Cache-Control 'ไม่มีแคช ไม่มีที่เก็บ ต้องตรวจสอบใหม่';
    }

มีการเปลี่ยนแปลงใด ๆ เกิดขึ้นระหว่าง nginx 1.12.4 และ 1.12.5 หรือฉันใช้ไวยากรณ์ที่เลิกใช้แล้วหรือไม่ ฉันไม่เคยได้รับคำเตือนใด ๆ เกี่ยวกับเรื่องนี้

jp flag
และมี \i ที่จุดเริ่มต้นของ regexp มันเป็นลำดับการหลบหนีที่ไม่รู้จัก
Score:1
ธง vn

ขอบคุณความคิดเห็นของ AlexD ฉันพบปัญหาจริงแล้ว:

การเปลี่ยนแปลงใน nginx 1.21.5 กำลังเปลี่ยนจาก PCRE เป็น PCRE2 PCRE2 เข้ากันได้กับเวอร์ชันก่อนหน้า ยกเว้นไม่ทนต่อข้อผิดพลาดจำนวนมากที่เวอร์ชันก่อนหน้าเพิกเฉย

ปัญหาในกรณีของฉันคือ 'การ Escape' ของตัวอักษรตัวแรก ซึ่งการ Escape ไม่ถูกต้อง (คัดลอกและวางจากกรณีอื่น โดยที่จุดถูก Escape)

PCRE ละเว้น 'การหลบหนี' อย่างเงียบ ๆ และประมวลผล regex ราวกับว่า '' ไม่มีอยู่

PCRE2 พ่นข้อผิดพลาด

Score:1
ธง kz

ในบันทึกย่อประจำรุ่นระบุว่าตอนนี้ "สร้างด้วยไลบรารี PCRE2 ตามค่าเริ่มต้น" บางทีนี่อาจเข้มงวดมากขึ้นเมื่อแยกวิเคราะห์ลำดับการหลีกเลี่ยงที่ไม่รู้จักกว่าเดิม

https://nginx.org/en/CHANGES

โพสต์คำตอบ

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