ฉันมีสองแอปพลิเคชัน
- แอปพลิเคชัน Laravel - เป็นเพียงเว็บไซต์แบบไดนามิก ไม่ได้มี
ข้อมูลความรู้ ข้อมูลทั้งหมดได้รับการดึงมาจากแอปพลิเคชันที่สอง
ใช้คำขอ AJAX วิ่งต่อไป
127.0.0.1:8000
.
- การประยุกต์ใช้สนิม - แอปพลิเคชันเว็บที่มีธุรกิจทั้งหมด
ตรรกะและการเข้าถึงข้อมูล วิ่งต่อไป
127.0.0.1:8080
.
แอปพลิเคชันทั้งสองต้องสามารถเข้าถึงได้จาก URL ตัวอย่าง.คอม
.
สำหรับสิ่งนี้ฉันต้องการใช้ Nginx Reverse Proxy ฉันสามารถเปลี่ยนเส้นทางคำขอทั้งหมดไปยังแอปพลิเคชัน Laravel ของฉันได้แล้ว
เหตุการณ์ {}
http {
เซิร์ฟเวอร์ {
ฟัง 80;
#เว็บไซต์
ที่ตั้ง / {
proxy_pass http://127.0.0.1:8000;
}
}
}
ในขณะที่แอปพลิเคชัน Laravel ทำงานฉันต้องการการกำหนดค่า Nginx ต่อไปนี้:
- เพจเฉพาะเช่น
/ข่าว
, /
, /เกี่ยวกับ
,/ติดต่อ
,... ควรเปลี่ยนเส้นทางไปที่ 127.0.0.1:8000
.
- หมายเหตุ: หน้าด้านบนอาจมีพารามิเตอร์ GET เช่น
/news?article=abc
.
- คำขออื่นๆ ทั้งหมดจำเป็นต้องเปลี่ยนเส้นทางไปที่
127.0.0.1:8080
.
- หมายเหตุ: 127.0.0.1:8080 มักประกอบด้วยโดเมนย่อย แต่โดเมนย่อยนี้ต้องทำหน้าที่เหมือนสัญลักษณ์แทนและไม่เป็นที่รู้จักในขณะที่กำหนดค่า ตัวอย่าง:
business1.example.com
, business2.example.com
, businnesX.example.com
,...
โดเมนย่อยจะส่งคืนเพจส่วนตัวซึ่งธุรกิจต่างๆ สามารถร้องขอบน example.com ได้ไม่จำกัดจำนวน
ฉันจะบรรลุการกำหนดค่านี้ได้อย่างไร ฉันคิดอะไรแบบนี้?
#PSEUDO
เหตุการณ์ {}
http {
เซิร์ฟเวอร์ {
ฟัง 80;
#เว็บไซต์
ที่ตั้ง / {
proxy_pass http://127.0.0.1:8000;
}
สถานที่ / ข่าว {
proxy_pass http://127.0.0.1:8000;
}
สถานที่ / เกี่ยวกับ {
proxy_pass http://127.0.0.1:8000;
}
# แอปพลิเคชัน
ที่ตั้ง * {
proxy_pass http://127.0.0.1:8080;
}
}
}
แก้ไขเกี่ยวกับคำตอบของ Tero:
ฉันต้องการสัญลักษณ์แทนสำหรับโดเมนย่อย
# แอปพลิเคชั่นจับทั้งหมด
ที่ตั้ง / {
proxy_pass http://$subdomain.$application;
}
abc.example.com ต้องไปที่ abc.127.0.0.1:8080
def.example.com ต้องไปที่ def.127.0.0.1:8080
...
ฉันรู้ว่า IP ไม่สามารถมีโดเมนย่อยได้ แต่ไม่ต้องกังวลไป ฉันแก้ไขด้วยโฮสต์เสมือน
แก้ไข 2 - ส่งโดเมนย่อยของคำขอไปยัง proxy_pass:
เซิร์ฟเวอร์ {
ฟัง 80;
server_name *.website.com;
server_name ~^(?<subdomain>.+)\.website\.com$;
ที่ตั้ง / {
proxy_pass http://$subdomain.vhost.local:8080;
}
}
นี่เป็นวิธีที่ถูกต้องในการเปลี่ยนเส้นทาง dynamicxxx.website.com ไปยัง dynamicxxx.vhost.local:8080 หรือไม่