ฉันมีเซิร์ฟเวอร์ Nginx ที่ทำหน้าที่เป็น reverse proxy สำหรับบริการสองสามอย่าง การกำหนดค่าคล้ายกับอันนี้
ตำแหน่ง / แบ็กเอนด์ / บริการ 1 {
proxy_pass http://pathto/service1;
}
ที่ตั้ง / {
ราก /a/โฟลเดอร์
}
ตำแหน่ง ~* (\.js|\.css)$
หมดอายุ 8d;
รูท /home/files/abc/bcd;
}
ปัญหาของฉันที่นี่คือเมื่อเร็ว ๆ นี้ service1 จากแบ็กเอนด์ต้องให้บริการไฟล์คงที่สองสามไฟล์เช่น /backend/service1/something/file1.js
หรือ /backend/service1/something/style.css
และตำแหน่งที่สอง เนื่องจากเป็นกฎตำแหน่ง regex จึงแทนที่ตำแหน่งแรก
ไฟล์สแตติกทั้งหมดที่มีให้โดยแบ็กเอนด์/service1 มีคำนำหน้า (บางสิ่งบางอย่าง
) ดังนั้นฉันจึงพยายามปรับปรุง regex จากตำแหน่งที่สองเพื่อให้มี lookahead/lookbehind เชิงลบ แต่ดูเหมือนจะไม่ทำงาน อาจเป็นเพราะรูปแบบหลักต้องมีความยาวคงที่ (นี่คือสิ่งที่ฉันพยายามโดยไม่มีโชค)
ตำแหน่ง / แบ็กเอนด์ / บริการ 1 {
proxy_pass http://pathto/service1;
}
ที่ตั้ง / {
ราก /a/โฟลเดอร์
}
ตำแหน่ง ~* (?<!something)(.*)(\.js|\.css)$
หมดอายุ 8d;
รูท /home/files/abc/bcd;
}
ฉันจะบรรลุสิ่งนี้ได้อย่างไร