การกําหนดค่าโฮสต์เสมือนสําหรับ Private Cloud

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

ในการติดตั้งภายในองค์กร คุณสามารถควบคุมโฮสต์เสมือนได้อย่างสมบูรณ์ คุณสร้างโฮสต์เสมือนสำหรับองค์กรในทุกสภาพแวดล้อมได้โดยใช้ TLS หรือไม่

เอกสารนี้จะอธิบายวิธีสร้างโฮสต์เสมือนแบบง่าย ซึ่งก็คือแอปที่ไม่รองรับ TLS ดูตัวอย่างเพิ่มเติมและตัวอย่างการสร้างโฮสต์เสมือนที่รองรับ TLS ได้ที่การกำหนดค่าการเข้าถึง TLS สำหรับ API สำหรับ Private Cloud

ดูข้อมูลเพิ่มเติม

ข้อมูลเกี่ยวกับชื่อแทนของโฮสต์

เมื่อสร้างโฮสต์เสมือน คุณต้องระบุชื่อแทนโฮสต์ของโฮสต์เสมือน โดยทั่วไปจะเป็นชื่อ DNS ของโฮสต์เสมือน

Edge Router จะเปรียบเทียบส่วนหัว Host ของคำขอขาเข้ากับรายการชื่อแทนโฮสต์ที่ใช้ได้ ซึ่งเป็นส่วนหนึ่งของการกำหนดพร็อกซี API ที่จัดการคำขอ เมื่อส่งคำขอผ่านโฮสต์เสมือน ให้ระบุชื่อโดเมนที่ตรงกับชื่อแทนโฮสต์ของโฮสต์เสมือน หรือระบุที่อยู่ IP ของเราเตอร์และส่วนหัว Host ที่มีชื่อแทนโฮสต์

เช่น หากคุณสร้างโฮสต์เสมือนที่มีชื่อแทนโฮสต์ของ myapis.apigee.net ในพอร์ต 9001 คำขอ cURL ไปยัง API ผ่านโฮสต์เสมือนนั้นสามารถใช้รูปแบบใดรูปแบบหนึ่งต่อไปนี้

  • หากคุณมีรายการ DNS สำหรับ myapis.apigee.net

    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • หากไม่มีรายการ DNS สำหรับ myapis.apigee.net ให้ทำดังนี้

    curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'

    ในแบบฟอร์มนี้ คุณจะระบุที่อยู่ IP ของเราเตอร์ และส่งชื่อแทนโฮสต์ในส่วนหัว Host

    curl http://routerIP:9001/proxy-base-path/resource-path

ตัวเลือกเมื่อคุณไม่มีรายการ DNS สำหรับโฮสต์เสมือน

ทางเลือกหนึ่งที่คุณไม่มีรายการ DNS คือการตั้งค่าชื่อแทนโฮสต์เป็นที่อยู่ IP ของเราเตอร์และพอร์ตของโฮสต์เสมือน เช่น routerIP:port ตัวอย่างเช่น

192.168.1.31:9001

เมื่อคุณสร้างคำสั่ง curl ในแบบฟอร์มด้านล่าง

curl http://routerIP:9001/proxy-base-path/resource-path

แนะนำให้ใช้ตัวเลือกนี้เนื่องจากใช้งานได้ดีกับ Edge UI

หากคุณมีเราเตอร์หลายรายการ ให้เพิ่มชื่อแทนโฮสต์สำหรับเราเตอร์แต่ละตัว ระบุที่อยู่ IP ของเราเตอร์แต่ละรายการและพอร์ตของโฮสต์เสมือน

คุณสามารถตั้งค่าชื่อแทนโฮสต์เป็นค่าต่างๆ เช่น temp.hostalias.com จากนั้นคุณต้องส่งส่วนหัว Host ในทุกคำขอ โดยทำดังนี้

curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'Host: temp.hostalias.com'

หรือเพิ่มชื่อแทนโฮสต์ลงในไฟล์ /etc/hosts เช่น เพิ่มบรรทัดนี้ลงใน /etc/hosts:

192.168.1.31 temp.hostalias.com

จากนั้นคุณจะส่งคำขอราวกับว่ามีรายการ DNS หนึ่งอยู่ โดยทำดังนี้

curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path

เกี่ยวกับพอร์ตโฮสต์เสมือนบน Edge สำหรับ Private Cloud 4.16.01 ขึ้นไป

เมื่อสร้างโฮสต์เสมือน คุณจะต้องระบุพอร์ตเราเตอร์ที่โฮสต์เสมือนใช้ เช่น พอร์ต 9001

สำหรับ Apigee สำหรับ Private Cloud รุ่น 4.16.01 ขึ้นไป โดยค่าเริ่มต้น เราเตอร์จะทำงานเป็นผู้ใช้ "apigee" ซึ่งไม่มีสิทธิ์เข้าถึงพอร์ตที่ได้รับสิทธิ์ ซึ่งโดยปกติจะเป็นพอร์ต 1024 หรือต่ำกว่า หากต้องการสร้างโฮสต์เสมือนที่ผูกเราเตอร์กับพอร์ตที่มีการป้องกัน คุณจะต้องกำหนดค่าเราเตอร์ให้ทำงานในฐานะผู้ใช้ที่มีสิทธิ์เข้าถึงพอร์ตเหล่านั้น โปรดดูการตั้งค่าโฮสต์เสมือนสำหรับข้อมูลเพิ่มเติม

สร้างโฮสต์เสมือน

ส่วนนี้จะอธิบายวิธีสร้างโฮสต์เสมือนสำหรับ Apigee Edge สำหรับ Private Cloud โปรดทราบว่าหากต้องการสร้างโฮสต์เสมือนใหม่ คุณต้องเป็นผู้ดูแลระบบองค์กร

คุณสร้างโฮสต์เสมือนสำหรับ Apigee Edge สำหรับ Private Cloud ได้โดยใช้ API หรือ UI ของ Edge ซึ่งอธิบายไว้ในส่วนต่อไปนี้

สร้างโฮสต์เสมือนโดยใช้เบราว์เซอร์

ส่วนนี้จะอธิบายวิธีการสร้างโฮสต์เสมือนโดยใช้เบราว์เซอร์ (Edge UI เท่านั้น)

วิธีสร้างโฮสต์เสมือนใหม่ใน Edge UI

  1. เข้าสู่ระบบ UI การจัดการ Edge
  2. เลือกผู้ดูแลระบบ > โฮสต์เสมือน
  3. เลือกสภาพแวดล้อมจากรายการแบบเลื่อนลง

    Edge จะแสดงรายการโฮสต์เสมือนสำหรับสภาพแวดล้อมนั้น

  4. ในการสร้างโฮสต์เสมือนใหม่ ให้เลือก + โฮสต์เสมือน

    Edge จะแสดงแบบฟอร์มสร้างโฮสต์เสมือน

    คุณยังสามารถคลิกชื่อของโฮสต์เสมือนที่มีอยู่เพื่อแก้ไขได้

  5. กำหนดโฮสต์เสมือนใหม่ โปรดทราบว่าช่อง URL หลักต้องมีโปรโตคอล (เช่น ใส่ "http://" หรือ "https://") ไว้หน้าค่าของช่อง

    นอกจากนี้ โปรดทราบว่า

    • ไม่มีการจำกัดจำนวนโฮสต์เสมือนที่คุณสร้างได้
    • TLS เป็นตัวเลือกที่ไม่บังคับ และอาจเป็นเวอร์ชัน 1.0, 1.1 หรือ 1.2
    • พอร์ตของโฮสต์เสมือนสามารถกำหนดค่าได้
  6. คลิกปุ่มสร้างเพื่อบันทึกโฮสต์เสมือนใหม่

สร้างโฮสต์เสมือนด้วย API

หากต้องการสร้างโฮสต์เสมือนด้วย API ให้สร้างออบเจ็กต์ XML ที่กำหนดโฮสต์เสมือน เช่น ออบเจ็กต์ XML ต่อไปนี้กำหนดโฮสต์เสมือนที่ใช้โปรโตคอล HTTP

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

โปรดสังเกตว่าโฮสต์เสมือนมีพร็อพเพอร์ตี้ name คุณใช้ค่าของพร็อพเพอร์ตี้ name เพื่อกำหนดค่าพร็อกซี API ให้ใช้โฮสต์เสมือน

จากนั้นคุณจะสามารถเข้าถึงพร็อกซี API ผ่านโฮสต์เสมือนนี้ได้โดยส่งคำขอเพื่อดำเนินการต่อไปนี้

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

โดยที่

  • http หรือ https: หากมีการกำหนดค่าโฮสต์เสมือนให้รองรับ TLS ให้ใช้ HTTPS หากโฮสต์เสมือนไม่รองรับ TLS ให้ใช้ HTTP
  • routerIP:port คือที่อยู่ IP และหมายเลขพอร์ตของโฮสต์เสมือน
  • มีการกำหนด proxy-base-path และ resource-path เมื่อคุณสร้างพร็อกซี API

โดยปกติแล้วคุณจะไม่เผยแพร่ API ต่อลูกค้าที่มีที่อยู่ IP และหมายเลขพอร์ต แต่คุณจะระบุรายการ DNS สำหรับเราเตอร์และพอร์ตแทน เช่น

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

หากกำหนดรายการ DNS คุณต้องสร้างชื่อแทนโฮสต์สำหรับโฮสต์เสมือนที่ตรงกับชื่อโดเมนของรายการ DNS ชื่อแทนโฮสต์ต้องตรงกับสตริงที่ไคลเอ็นต์ส่งผ่านในส่วนหัว Host จากตัวอย่างข้างต้น คุณจะระบุชื่อแทนโฮสต์ของ api.myCompany.com

<VirtualHost name="myVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9005</Port>
</VirtualHost>

หากต้องการสร้างโฮสต์เสมือนที่ใช้โปรโตคอล HTTP ให้ทำดังนี้

  1. สร้างโฮสต์เสมือนโดยใช้ API สร้างโฮสต์เสมือน โดยที่ ms-IP คือที่อยู่ IP หรือชื่อโดเมนของโหนดเซิร์ฟเวอร์การจัดการ:
    $ curl -X POST -H "Content-Type:application/xml" \
    http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
    -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
      </VirtualHost>' \
    -u sysAdminEmail:password
    
  2. สร้างระเบียน DNS สำหรับโฮสต์เสมือนที่ตรงกับชื่อแทนโฮสต์
  3. หากคุณมีพร็อกซี API อยู่แล้ว ให้เพิ่มโฮสต์เสมือนไปยังองค์ประกอบ <HTTPConnection> ในปลายทางของพร็อกซี ระบบจะเพิ่มโฮสต์เสมือนลงในพร็อกซี API ใหม่ทั้งหมดโดยอัตโนมัติ โปรดดู การกำหนดค่าพร็อกซี API เพื่อใช้โฮสต์เสมือน

การแก้ไขโฮสต์เสมือน

หากต้องการแก้ไขโฮสต์เสมือน ให้ทำดังนี้

  1. อัปเดตโฮสต์เสมือนโดยใช้ อัปเดตโฮสต์เสมือน API โดยที่ <ms-IP> คือที่อยู่ IP หรือชื่อโดเมนของโหนดเซิร์ฟเวอร์การจัดการ คุณต้องระบุคำจำกัดความที่สมบูรณ์ของโฮสต์เสมือนในเนื้อหาคำขอ ไม่ใช่เพียงองค์ประกอบที่คุณต้องการเปลี่ยนแปลง ในตัวอย่างนี้ คุณเปลี่ยนหมายเลขพอร์ตของโฮสต์เสมือนจาก 9008 เป็น 9009

    curl -X PUT -H "Content-Type:application/xml" \
      http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
      -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9009</Port>
      </VirtualHost>' \
      -u email:password
  2. สำหรับ Edge สำหรับ Private Cloud เวอร์ชัน 4.16.01 และ 4.16.05 เท่านั้น หากคุณแก้ไขโฮสต์เสมือนที่มีอยู่ แล้วเปิดใช้ TLS หรือปิดใช้ TLS โดยไม่เปลี่ยนหมายเลขพอร์ต ให้ทำดังนี้
    1. หยุดเราเตอร์

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. ลบไฟล์ใน /opt/nginx/conf.d:

      rm -f /opt/nginx/conf.d/*
    3. เริ่มต้นเราเตอร์ด้วยคำสั่งต่อไปนี้

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. ทำซ้ำสำหรับเราเตอร์ทั้งหมด