เกี่ยวกับโฮสต์เสมือน

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

ใน Edge เราเตอร์จะจัดการการรับส่งข้อมูล API ขาเข้าทั้งหมด ซึ่งหมายความว่าคำขอ HTTP และ HTTPS ทั้งหมดที่ส่งไปยังพร็อกซี API จะได้รับการจัดการโดยเราเตอร์ Edge ก่อน

โฮสต์เสมือนช่วยให้คุณโฮสต์ชื่อโดเมนหลายรายการในเซิร์ฟเวอร์ได้ สำหรับ Edge เซิร์ฟเวอร์จะสอดคล้องกับเราเตอร์ Edge การกำหนดโฮสต์เสมือนหลายรายการในเราเตอร์ เราเตอร์จะจัดการคำขอ API ที่ส่งไปยังชื่อโดเมนหลายรายการได้

โฮสต์เสมือนใน Edge จะกำหนดโปรโตคอลการเข้าถึง (HTTP หรือ HTTPS), พอร์ตเราเตอร์ที่เปิดอยู่ และชื่อแทนโฮสต์ โดยปกติแล้วชื่อแทนโฮสต์จะเป็นชื่อโดเมน DNS ที่แมปกับที่อยู่ IP ของเราเตอร์

ตัวอย่างเช่น รูปภาพต่อไปนี้แสดงเราเตอร์ที่มีการกำหนดโฮสต์เสมือน 2 รายการ

โฮสต์เสมือนรายการแรกจะจัดการคำขอ HTTPS ใน โดเมน domainName1 และรายการที่ 2 จะจัดการคำขอ HTTP ใน domainName2

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

เกี่ยวกับการกำหนดโฮสต์เสมือน

โฮสต์เสมือนมีข้อมูลต่อไปนี้

  • ชื่อ ภายในของโฮสต์เสมือน คุณใช้ชื่อดังกล่าวเพื่ออ้างอิงโฮสต์เสมือน ในพร็อกซี API และเมื่อกำหนดค่าโฮสต์เสมือน
  • ชื่อแทนโฮสต์ ของโฮสต์เสมือน โดยปกติแล้วชื่อแทนโฮสต์จะเป็นชื่อโดเมน DNS ที่แมปกับที่อยู่ IP ในเราเตอร์ ส่วนหัว Host ของคำขอพร็อกซี API ต้องมีชื่อแทนโฮสต์ของโฮสต์เสมือน
  • พอร์ตที่เปิดอยู่ ในเราเตอร์
  • สถานะการเปิดใช้ TLS (การเข้าถึง HTTPS) หรือไม่ (การเข้าถึง HTTP)

ตัวอย่างเช่น คุณระบุข้อมูลต่อไปนี้เมื่อสร้างโฮสต์เสมือน

  • name = myvhost
  • host alias = apis.acme.com
  • port = 443
  • เปิดใช้ TLS

คำขอที่ส่งไปยังพร็อกซี API จะใช้ รูปแบบต่อไปนี้ตามการตั้งค่าโฮสต์เสมือนด้านบน

https://apis.acme.com/{proxy-base-path}/{resource-path}

โดยที่

  • {proxy-base-path} จะกำหนดขึ้นเมื่อคุณสร้างพร็อกซี API และไม่ซ้ำกันสำหรับพร็อกซี API แต่ละรายการ เช่น
    https://apis.acme.com/characters
  • {resource-path} คือเส้นทางไปยังทรัพยากรที่เข้าถึงได้ผ่านพร็อกซี API เช่น
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

เกี่ยวกับโฮสต์เสมือนใน Edge for the Cloud

องค์กร Edge แต่ละองค์กรจะมีสภาพแวดล้อม 2 รายการ (test และ prod), โฮสต์เสมือน 2 รายการในแต่ละสภาพแวดล้อม (default และ secure), และระเบียน DNS สำหรับชื่อแทนโฮสต์แต่ละรายการโดยอัตโนมัติ

ชื่อแทนโฮสต์ของโฮสต์เสมือนแต่ละรายการที่ Apigee จัดหาให้จะมีชื่อองค์กร และ สภาพแวดล้อม ดังที่แสดงในตารางต่อไปนี้

สภาพแวดล้อม ชื่อโฮสต์เสมือน ชื่อแทนโฮสต์ พอร์ต เปิดใช้ TLS
Prod ค่าเริ่มต้น {org-name}-prod.apigee.net 80 ไม่
ปลอดภัย {org-name}-prod.apigee.net 443 ใช่
ทดสอบ ค่าเริ่มต้น {org-name}-test.apigee.net 80 ไม่
ปลอดภัย {org-name}-test.apigee.net 443 ใช่

ตัวอย่างเช่น ชื่อโดเมนเริ่มต้นขององค์กรที่ชื่อว่า "myorg" ในสภาพแวดล้อม prod คือ "myorg-prod.apigee.net" ดังนั้น หากต้องการเข้าถึงพร็อกซี API ในองค์กรดังกล่าว คุณต้องใช้ URL ในรูปแบบต่อไปนี้

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

แผนบริการแบบชำระเงินของ Apigee: ชื่อโดเมนที่มี "apigee.net" อาจไม่ใช่สิ่งที่คุณต้องการแสดงต่อ ลูกค้า คุณสามารถใช้รายการ DNS และระเบียน CNAME เพื่อแมปชื่อโดเมนกับ องค์กรใน Edge ได้ นอกจากนี้ คุณต้องสร้างโฮสต์เสมือนโดยตั้งค่าชื่อแทนโฮสต์เป็นชื่อโดเมนดังกล่าว ซึ่งจะช่วยให้นักพัฒนาแอปเข้าถึง API ของคุณผ่านโดเมนที่เฉพาะเจาะจงกับบริษัทของคุณได้

ตัวอย่างโดเมนที่กำหนดเองใน Edge มีดังนี้

https://apis.acme.com/{proxy-base-path}/{resource-path}

เกี่ยวกับโฮสต์เสมือน ใน Edge for Private Cloud

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

หากต้องการเริ่มต้นใช้งาน ให้เรียกใช้คำสั่งต่อไปนี้ในโหนดเซิร์ฟเวอร์การจัดการ Edge

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

โดยที่ configFile มีข้อมูลที่จำเป็นในการสร้าง ผู้ใช้ องค์กร สภาพแวดล้อม และโฮสต์เสมือน

ตัวอย่างเช่น คุณสร้างรายการต่อไปนี้

  • ผู้ใช้ที่คุณเลือกให้ทำหน้าที่เป็นผู้ดูแลระบบองค์กร
  • องค์กรที่ชื่อว่า example
  • สภาพแวดล้อมในองค์กรที่ชื่อว่า prod
  • โฮสต์เสมือนในสภาพแวดล้อมที่ชื่อว่า default ซึ่งอนุญาตการเข้าถึง HTTP ในพอร์ต 9001
  • ชื่อแทนโฮสต์ของชื่อ DNS ที่ใช้เข้าถึงเราเตอร์ หรือที่อยู่ IP ของเราเตอร์และ พอร์ตของโฮสต์เสมือนในรูปแบบ IP:9001

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

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

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

หลังจากเรียกใช้คำสั่งดังกล่าวแล้ว คุณจะเข้าถึง API ได้โดยใช้ URL ในรูปแบบต่อไปนี้

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

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

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

เมื่อกำหนดรายการ DNS คุณต้องสร้างโฮสต์เสมือนที่มีชื่อแทนโฮสต์ซึ่ง ตรงกับชื่อโดเมนของรายการ DNS ด้วย จากตัวอย่างด้านบน คุณจะระบุชื่อแทนโฮสต์ เป็น myAPI.myCo.com เมื่อสร้างโฮสต์เสมือน

เกี่ยวกับชื่อแทนโฮสต์และชื่อ DNS

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

ชื่อแทนโฮสต์และ ชื่อ DNS ใน Edge for the Cloud

ใน Edge for the Cloud เมื่อคุณสร้างองค์กร Edge เป็นครั้งแรก Apigee จะสร้างสภาพแวดล้อม 2 รายการ (test และ prod), โฮสต์เสมือน 2 รายการในแต่ละสภาพแวดล้อม (default และ secure) และระเบียน DNS สำหรับโฮสต์เสมือนแต่ละรายการโดยอัตโนมัติ

ชื่อแทนโฮสต์ของโฮสต์เสมือนจะมีชื่อองค์กรและสภาพแวดล้อม ดังนั้น คำขอที่ส่งผ่านโฮสต์เสมือนจะมีรูปแบบดังนี้

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

โดยปกติแล้วคุณจะต้องการสร้างโฮสต์เสมือนที่ใช้ชื่อโดเมนของคุณเอง แทนที่จะใช้ โดเมน apigee.net เริ่มต้น หากต้องการทำเช่นนั้น คุณต้องสร้างรายการ DNS และระเบียน CNAME ของคุณเองก่อน

รูปต่อไปนี้แสดงการกำหนดค่าทั่วไปสำหรับวิธีที่ Edge ประมวลผลคำขอ API

ในตัวอย่างนี้

  • api.acme.com คือชื่อโดเมนที่คุณต้องการ
  • คุณกำหนดรายการ DNS และระเบียน CNAME เพื่อให้ api.acme.com ชี้ไปยัง acme-prod.apigee.net
  • คำขอมีส่วนหัว Host ซึ่งเราเตอร์ใช้เพื่อ กำหนดโฮสต์เสมือนที่จะจัดการคำขอ

ในตัวอย่างนี้ คุณระบุข้อมูลต่อไปนี้ในการกำหนดโฮสต์เสมือน

  • name = myvhost
  • host alias = apis.acme.com
  • port = 443
  • เปิดใช้การเข้าถึง TLS

ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่าโฮสต์เสมือนสำหรับ Cloud

ชื่อแทนโฮสต์ และชื่อ DNS ใน Edge for Private Cloud

เช่นเดียวกับ Edge for the Cloud คุณสร้างโฮสต์เสมือนที่ใช้ชื่อโดเมนของคุณเองสำหรับชื่อแทนโฮสต์ จากนั้นสร้างรายการ DNS และระเบียน CNAME ของคุณเองเพื่อเข้าถึงโฮสต์เสมือนเหล่านั้น

ความแตกต่างอย่างหนึ่งระหว่าง Cloud กับ Private Cloud คือใน Cloud นั้น Apigee จะสร้างชื่อ DNS สำหรับองค์กรของคุณโดยอัตโนมัติในรูปแบบต่อไปนี้

  • name=default: http://{org-name}-{env-name}.apigee.net (พอร์ตเราเตอร์ 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (พอร์ตเราเตอร์ 443)

ใน Edge for the Private Cloud คุณต้องสร้างรายการ DNS ไปยังที่อยู่ IP และพอร์ต ของเราเตอร์

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

  • name = myvhost
  • host alias = apis.acme.com
  • port = 9001
  • เปิดใช้การเข้าถึง TLS

รูปต่อไปนี้แสดงการกำหนดค่าทั่วไปสำหรับวิธีที่ Edge ประมวลผลคำขอ API

ในตัวอย่างนี้

  • api.acme.com คือชื่อโดเมนที่คุณต้องการ
  • คุณกำหนดรายการ DNS และระเบียน CNAME เพื่อให้ api.acme.com ชี้ไปยังที่อยู่ IP และพอร์ตของเราเตอร์
  • คำขอมีส่วนหัว Host ซึ่งเราเตอร์ใช้เพื่อ กำหนดโฮสต์เสมือนที่จะจัดการคำขอ

ดูข้อมูลเพิ่มเติมได้ที่ การกำหนดค่าโฮสต์เสมือนสำหรับ Private Cloud

ชื่อแทนโฮสต์และไวลด์การ์ด

คุณสามารถใส่ไวลด์การ์ด "*" ในชื่อแทนโฮสต์ได้ โดยไวลด์การ์ด ""*"" จะอยู่ที่จุดเริ่มต้น (ก่อน ""."" แรก) ของชื่อแทนโฮสต์เท่านั้น และใช้ร่วมกับอักขระอื่นๆ ไม่ได้

ตัวอย่างชื่อแทนโฮสต์ที่ถูกต้องซึ่งใช้ไวลด์การ์ดมีดังนี้

*.example.com

ตัวอย่างต่อไปนี้ไม่ถูกต้อง

  www.*.example.com
  w*.example.com

การใช้ไวลด์การ์ดในชื่อแทนโฮสต์เสมือนจะช่วยให้ พร็อกซี API จัดการการเรียกที่ส่งไปยังโดเมนย่อยหลายรายการได้ เช่น alpha.example.com, beta.example.com, หรือ live.example.com นอกจากนี้ การใช้ชื่อแทนไวลด์การ์ดยังช่วยให้คุณใช้โฮสต์เสมือน ต่อสภาพแวดล้อมน้อยลงเพื่อให้อยู่ใน ขีดจำกัด ของผลิตภัณฑ์ เนื่องจากโฮสต์เสมือนที่มีไวลด์การ์ดจะนับเป็นโฮสต์เสมือนเพียงรายการเดียว

ใบรับรอง TLS สำหรับโฮสต์เสมือนต้องมีไวลด์การ์ดที่ตรงกันในชื่อ CN ของใบรับรอง เช่น *.example.com

เกี่ยวกับพร็อพเพอร์ตี้โฮสต์เสมือน

ใน Edge โฮสต์เสมือนจะแสดงด้วยออบเจ็กต์ XML ตัวอย่างเช่น ออบเจ็กต์ XML ต่อไปนี้กำหนดโฮสต์เสมือน

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

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

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