อย่าระบุพอร์ตใน URL พลังของ nginx คือความสามารถของพร็อกซีย้อนกลับ
ขั้นแรก สร้างไฟล์กำหนดค่าที่แตกต่างกันสำหรับแต่ละเว็บแอปพลิเคชัน อย่าเพิ่งทุบทุกอย่างในการกำหนดค่าเซิร์ฟเวอร์เดียว หรือแย่กว่านั้นคือใน nginx.conf ไฟล์.
ตั้งค่า ต้นน้ำ เหนือหลักของคุณ บล็อกเซิร์ฟเวอร์ สำหรับแต่ละแอปพลิเคชัน:
อัปสตรีม webapp1 {
เซิร์ฟเวอร์ 127.0.0.1:7000 weight=1 fail_timeout=0; #การตั้งค่าการหมดเวลาและน้ำหนักเป็นตัวเลือก
}
ภายในบล็อกเซิร์ฟเวอร์เมื่อ nginx เข้าถึงตำแหน่ง "/" ให้เรียกอัพสตรีม:
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2; #ถ้าคุณใช้ HTTPS - ซึ่งคุณควรทำ
server_name webapp1.random-company.com;
[...]
ที่ตั้ง / {
[...]
proxy_pass http://webapp1;
}
ทำซ้ำสำหรับ เว็บแอพ2 ดังนั้น:
อัปสตรีม webapp2 {
เซิร์ฟเวอร์ 127.0.0.1:8000;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2; #ถ้าคุณใช้ HTTPS - ซึ่งคุณควรทำ
server_name webapp2.random-company.com;
[...]
ที่ตั้ง / {
[...]
proxy_pass http://webapp2;
}
สำหรับแอปพลิเคชัน Django / Flask คุณไม่จำเป็นต้องเรียกใช้แอปพลิเคชันผ่าน TCP/IP คุณสามารถให้ nginx ฟังซ็อกเก็ต UNIX ได้โดยตรง คุณใช้อะไรในการส่งใบสมัคร uWSGI, กูนิคอร์น, (...)?
อ่านเพิ่มเติมเกี่ยวกับ Flask บน uWSGI
โดยทั่วไป หัวข้อนี้ไม่จำเป็นต้องเป็นหัวข้อ Ubuntu บางทีคุณอาจต้องการตรวจสอบ StackOverflow หรือ Serverfault แทน