ฉันมีสองตำแหน่งที่แตกต่างกันบนเซิร์ฟเวอร์ของฉัน:
- เซิร์ฟเวอร์/สถานที่ก
- เซิร์ฟเวอร์/สถานที่B
ฉันต้องการจำกัดการเข้าถึงตำแหน่งเหล่านี้โดยใช้ใบรับรองไคลเอ็นต์ certA และ certB สองใบ
LocationA ควรเข้าถึงได้โดยใช้ certA และ locationB เท่านั้นโดยใช้ certB
จนถึงตอนนี้ฉันทำแบบนี้โดยใช้พอร์ตต่าง ๆ :
เซิร์ฟเวอร์ {
ฟัง 11111 ssl;
server_name ServerA;
ssl_certificate server.crt;
ssl_certificate_key server.key;
ssl_client_certificate certA.crt;
ssl_verify_client เป็นทางเลือก;
ที่ตั้ง /A {
ถ้า ($ssl_client_verify != สำเร็จ) {
กลับ 403;
}
นามแฝง /www/data/files/A.html;
}
}
เซิร์ฟเวอร์ {
ฟัง 22222 ssl;
server_name ServerB;
ssl_certificate server.crt;
ssl_certificate_key server.key;
ssl_client_certificate certB.crt;
ssl_verify_client เป็นทางเลือก;
ที่ตั้ง /B {
ถ้า ($ssl_client_verify != สำเร็จ) {
กลับ 403;
}
นามแฝง /www/data/files/B.html;
}
}
คำถามของฉันตอนนี้คือเป็นไปได้หรือไม่ที่จะมีทั้งสองตำแหน่งที่พอร์ตเดียวกันเช่น (เซิร์ฟเวอร์/A และเซิร์ฟเวอร์/B แทนเซิร์ฟเวอร์:11111/A และเซิร์ฟเวอร์:22222/B) ? และฉันจะต้องจัดโครงสร้างการกำหนดค่า nginx อย่างไรเพื่อให้ได้สิ่งนี้