วิธีย้อนกลับพร็อกซีไปยังสถานที่ต่างกันโดยขึ้นอยู่กับโดเมนย่อยใน Nginx


14

ฉันมีหลายโดเมนย่อยทั้งหมดชี้ไปที่เครื่องหนึ่งและที่อยู่ IP หนึ่งแห่ง บนเครื่องนี้ฉันต้องการให้ nginx ทำหน้าที่เป็น reverse proxy และขึ้นอยู่กับว่าใช้โดเมนย่อยใดในการเข้าถึงเครื่องฉันต้องการให้ reverse proxy ไปยังเซิร์ฟเวอร์อื่น ตัวอย่างทั้งหมดที่ฉันเห็นว่าใช้ nginx เป็น reverse proxy ใช้locationแต่เท่าที่ฉันเข้าใจว่าใช้งานได้กับพา ธ เท่านั้นไม่ใช่โดเมนย่อยที่ต่างกัน ฉันจะบรรลุสิ่งที่ฉันต้องการได้อย่างไร


2
นี่อาจจะกว้างเกินไป คุณช่วยโพสต์เพิ่มเติมเกี่ยวกับสิ่งที่คุณได้ลองไปแล้วได้ไหม?
จะ

คำตอบ:


27

ถ้าฉันไม่ได้อ่านคำถามของคุณผิดอย่างสิ้นเชิง: คุณเพียงแค่ตั้งค่าบล็อกเซิร์ฟเวอร์สำหรับแต่ละโดเมนย่อยและกำหนดพร็อกซีย้อนกลับที่ถูกต้องสำหรับรูทของโดเมนย่อยนั้นนั่นคือบางสิ่งตามแนวของ:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }

ขออภัยที่ตอบช้า แต่ฉันทำงานได้!
markasoftware

3

ค่อนข้างเหมือนกัน

location /foo {
    rewrite ^/foo(.+)$ /$1 break;
    proxy_pass http://foo;
}

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}

1
นี่ไม่ใช่สิ่งที่ฉันกำลังมองหา ดูคำตอบที่ยอมรับ
markasoftware

1
การเคี้ยวและการย่อยเป็นภาระของผู้ร้องขอไม่ใช่ของฉัน
drookie
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.