Score:0

nginx ชื่อที่แตกต่างกันสำหรับพอร์ตต่างๆ

ธง pk

ฉันมีเว็บแอปพลิเคชันสองรายการ (webapp1 พอร์ต 7000 และ webapp2 พอร์ต 8000) สำหรับการใช้งานภายในที่โฮสต์บนเซิร์ฟเวอร์ VM ของฉันด้วยที่อยู่ IP 192.168.15.10 (ubuntu 20.04)

ฉันต้องการดูว่าเป็นไปได้หรือไม่ที่จะกำหนดชื่อที่แตกต่างกันสำหรับเว็บแอปพลิเคชันทั้งสอง

วิธีที่ฉันต้องการให้ทำงานคือ:

หากผู้ใช้ภายในเข้าสู่ webapp1.random-company.com ในเบราว์เซอร์ ระบบจะนำผู้ใช้ไปยัง webapp1 ที่มีพอร์ต 7000 (192.168.15.10:7000)

หากผู้ใช้ภายในเข้าสู่ webapp2.random-company.com ในเบราว์เซอร์ ระบบจะนำผู้ใช้ไปยัง webapp2 ด้วยพอร์ต 8000 (192.168.15.10:8000)

ฉันลองใช้ nginx บน 192.168.15.10 และสามารถนำผู้ใช้ไปที่ webapp1.random-company.com (192.168.15.10:7000) อย่างไรก็ตาม ฉันไม่สามารถนำผู้ใช้ไปที่ webapp2.random-companyในความเป็นจริง เมื่อผู้ใช้พิมพ์ webapp1.random-company.com:8000 ระบบจะนำผู้ใช้ไปยัง webapp2

นี่เป็นสิ่งที่เป็นไปได้หรือไม่?

แอปพลิเคชั่นหนึ่งสร้างขึ้นใน django และอีกแอปพลิเคชั่นหนึ่งสร้างขึ้นในขวด

Score:0
ธง cn

อย่าระบุพอร์ตใน 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 แทน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา