กำลังพยายามตั้งค่า wildcard url ใน ingress-nginx kubernetes Ingress เพื่อเปลี่ยนเส้นทางไปยัง url ตามเส้นทาง ดูเหมือนว่าจะไม่ผ่านค่า wildcard regex
URL จะเป็น "https://test.dev.example1.com/admin" และควรเปลี่ยนเส้นทางไปที่ https://example2.com/folder/test
ผลลัพธ์ที่ฉันได้รับคือเปลี่ยนเส้นทางไปที่ https://example2.com/folder/
ดูเหมือนว่าฉันไม่ได้รับค่าไวด์การ์ดของ "การทดสอบ" ที่มาเป็นตัวแปร
ด้านล่างนี้เป็นตัวอย่างของ Ingress
รุ่น api: networking.k8s.io/v1
ชนิด: ทางเข้า
ข้อมูลเมตา:
ชื่อ: ตัวอย่างบริการเข้า
คำอธิบายประกอบ:
kubernetes.io/ingress.class: nginx
cert-manager.io/issuer: "letsencrypt-production"
nginx.ingress.kubernetes.io/ssl-redirect: "จริง"
nginx.ingress.kubernetes.io/server-snippet: |
server_name ~^(?<ชื่อ>[\w-]+)\.dev\.example1\.com$;
ตำแหน่ง / ผู้ดูแลระบบ {
ส่งคืน 301 $scheme://example2.com/folder/$name;
}
...
ฉันได้ทดสอบ regex ใน regex101.com แล้ว และดูเหมือนว่าจะถูกต้อง (ลบ ~)
ฉันได้ลองสองสามอย่างแล้ว เช่น ใช้ $name var และวางค่าฮาร์ดโค้ดอีกสองค่าไว้ตรงกลาง (เช่น return 301 $scheme://example2.com/folder/begin.$name.end;) ซึ่งจะคืนค่า "https ://example2.com/folder/begin..end" ซึ่งส่งคืนค่าว่างหรือค่า NULL ระหว่างค่าฮาร์ดโค้ด start..end
ฉันไม่แน่ใจว่า $name var ใน regex ผ่านถูกต้องหรือไม่ ฉันไม่สามารถมองเห็นคุณค่า
ฉันใช้สิ่งนี้ในการอ้างอิงต่อไปนี้เป็นข้อมูลอ้างอิง https://stackoverflow.com/questions/39563071/how-to-get-subdomain-of-url-in-nginx