ตำแหน่ง nginx คืออะไร ~ * และ ~


15

ฉันพยายามทำความเข้าใจกับ nginx ให้ดีขึ้นเล็กน้อยและพยายามสร้าง regex โดยที่ url ที่ไม่ตรงกันทุกตัว/api/postdataV1จะถูกส่งไปยังกลุ่มของเซิร์ฟเวอร์ที่แตกต่างกัน ฉันเห็นตัวอย่างสองสิ่งนี้ต่อไปโดยไม่มีคำอธิบาย

location ~ {some regex}

location ~* (some regex}

คำถามแรกของฉันคือสิ่งเหล่านี้~และ~*(ฉันคิด~ว่าฉันหมายถึงเพียงแค่ระบุ regex?) แต่สิ่งที่เกี่ยวกับ~*ตอนนั้น?

สิ่งที่ฉันคิดว่าสิ่งที่ฉันต้องการคือ สิ่งนี้จะถูกต้องหรือไม่

location ~ ^/api/postdataV1$ {
    #matches to this route to where I want
}

location / {
    #This will be everything except /api/postdataV1 I think
}

สิ่งนี้จะถูกต้องหรือไม่ แต่สิ่งที่เกี่ยวกับ~*... ฉันไม่ได้รับอย่างนั้น

ขอบคุณคณบดี


วิกินั้นคุ้มค่าที่จะดูก่อนเสมอ
ชายคนนั้นจากที่นั่น

1
ฉันตรวจสอบเอกสารแล้ว แต่ไม่พบลิงก์ที่ถูกต้องและลงเอยด้วยหน้าเอกสารประกอบสำหรับ "ตำแหน่ง" ซึ่งควรมีข้อมูลนั้นจริง ๆ แต่ไม่พบ (วิกิขณะที่ฉันจำได้ว่าส่งเอกสารให้ฉันว่าเป็นเวอร์ชันล่าสุด)
Dean Hiller

ฉันต้องการ google สิ่งnginx locationแรกที่ต้องทำคือนี้ :) แต่ฉันต้องยอมรับเราต้องคุ้นเคยกับเอกสารประกอบของ nginx โดยเฉพาะ การค้นหาสิ่งที่ถูกต้องด้านล่างส่วนโมดูล
ชายคนนั้นจากที่นั่น

1
google หน้าแรกของฉันที่ใช้คำค้นหาของคุณเป็นสิ่งที่ฉันอ่านครั้งแรกในรอบ ... wiki.nginx.org/HttpCoreModuleซึ่งใน RED บอกว่าบทความนี้ล้าสมัยนำฉันไปยังหน้าอื่น (คุณต้องรู้ว่า Google yeilds ผลลัพธ์ที่แตกต่าง ว่าคุณคือใครถ้าเข้าสู่ระบบและเซิร์ฟเวอร์ที่คุณจบลงด้วยการกดปุ่ม) ฉันไม่ได้ไปที่หน้าเว็บที่ระบุด้านล่างซึ่ง rocked โดยใช้ google และอ่านรอบ ๆ :( !!!
Dean Hiller

คำตอบ:


16

ตามที่ระบุไว้ในเอกสาร nginx , ~*regex สำหรับการจับคู่ case-insensitive และ~สำหรับ case-sensitive

ไวยากรณ์ของคุณก็โอเค แต่มันสามารถเขียนใหม่ได้โดยไม่ต้อง regex (ตำแหน่งที่สั้นที่สุดจะเป็นอันดับสุดท้ายในการจับคู่คำขอ):

location /api/postdata {
}

location / {
}

1
อ๊ะ ... ใช่ฉันลองใช้ Google ~ * แต่กูเกิ้ลก็ไม่ได้ทำดัชนีตัวละครพิเศษดีเกินไป (แย่มาก nginx ไม่ได้ใช้คำสั่งแทนเพราะฉันอาจจะลงจอดบนหน้านั้น)
Dean Hiller

@DeanHiller ดูเหมือนว่า Google จะแก้ไขข้อผิดพลาดนั้น: D
Yarek T

คำตอบของคุณอาจไม่ถูกต้องเนื่องจาก/api/PostDataไม่ตรงกันโดยไม่มี~*
Devy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.