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

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

ในการติดตั้งในองค์กร คุณสามารถควบคุมโฮสต์เสมือนได้อย่างสมบูรณ์ โดยสร้างโฮสต์เสมือนสำหรับองค์กรใดก็ได้ ในสภาพแวดล้อมใดก็ได้ ไม่ว่าจะใช้ 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

เราขอแนะนำตัวเลือกนี้เนื่องจากทำงานได้ดีกับ UI ของ Edge

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

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

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

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

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

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

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

  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 หรือชื่อโดเมนของโหนด Management Server:
    $ 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 หรือชื่อโดเมนของโหนด Management Server คุณต้องระบุนิยามที่สมบูรณ์ของ โฮสต์เสมือนในเนื้อหาของคำขอ ไม่ใช่แค่องค์ประกอบที่ต้องการเปลี่ยนแปลง ในตัวอย่างนี้ คุณจะเปลี่ยนหมายเลขพอร์ตของโฮสต์เสมือนจาก 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 for Private Cloud เวอร์ชัน 4.16.01 และ 4.16.05 เท่านั้น หากคุณแก้ไขโ101}ฮสต์เสมือนที่มีอยู่ และเปิดใช้ TLS หรือปิดใช้ TLS โดยไม่เปลี่ยนหมายเลขพอร์ต101}ให้ทำดังนี้:101}101}
    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. ทำซ้ำสำหรับเราเตอร์ทั้งหมด