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

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

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

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

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

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

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

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

เกี่ยวกับคำจำกัดความของโฮสต์เสมือน

โฮสต์เสมือนประกอบด้วยข้อมูลต่อไปนี้

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

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

  • name = myvhost
  • อีเมลแทนของโฮสต์ = apis.acme.com
  • พอร์ต = 443
  • เปิดใช้ TLS แล้ว

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

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

where:

  • {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 ตัวในแต่ละสภาพแวดล้อม (ค่าเริ่มต้นและปลอดภัย) และระเบียน 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 สำหรับ Private Cloud

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

หากต้องการเริ่มต้นใช้งาน ให้เรียกใช้คําสั่งต่อไปนี้บนโหนด Edge Management Server

/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 รายการในแต่ละสภาพแวดล้อม (เริ่มต้นและปลอดภัย) และระเบียน 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 ซึ่งเราเตอร์ใช้เพื่อกำหนดโฮสต์เสมือนที่จัดการคำขอ

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

  • ชื่อ = myvhost
  • อีเมลแทนของโฮสต์ = apis.acme.com
  • port = 443
  • เปิดใช้การเข้าถึง TLS

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

ชื่อแทนโฮสต์และชื่อ DNS ใน Edge สำหรับ Private Cloud

คุณสร้างโฮสต์เสมือนที่ใช้ชื่อโดเมนของคุณเองสำหรับชื่อแทนของโฮสต์ได้เช่นเดียวกับ Edge สำหรับระบบคลาวด์ จากนั้นคุณจะสร้างรายการ 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 สำหรับ Private Cloud คุณต้องสร้างรายการ DNS สำหรับที่อยู่ IP และพอร์ตของเราเตอร์

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

  • name = myvhost
  • ชื่อแทนโฮสต์ = apis.acme.com
  • พอร์ต = 9001
  • เปิดใช้การเข้าถึง TLS

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

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

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

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

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

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

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

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

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