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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Edge จะแสดงแบบฟอร์ม Create Virtual Host

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

  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. ทำซ้ำสำหรับเราเตอร์ทั้งหมด