คุณกําลังดูเอกสาร Apigee Edge
ดูเอกสารประกอบเกี่ยวกับ Apigee X
ในการติดตั้งภายในองค์กร คุณสามารถควบคุมโฮสต์เสมือนได้อย่างเต็มรูปแบบ คุณจะสร้างโฮสต์เสมือนสําหรับองค์กรใดก็ได้ในสภาพแวดล้อมใดก็ได้โดยใช้ TLS หรือไม่ก็ได้
เอกสารนี้อธิบายวิธีการสร้างโฮสต์เสมือนแบบง่าย กล่าวคือ แอปที่ไม่รองรับ TLS ดูตัวอย่างเพิ่มเติม รวมถึงตัวอย่างการสร้างโฮสต์เสมือนที่รองรับ TLS ได้ที่การกําหนดค่าการเข้าถึง TLS สําหรับ API สําหรับ Private Cloud
ดูข้อมูลเพิ่มเติม
- เกี่ยวกับโฮสต์เสมือน
- การกําหนดค่าโฮสต์เสมือน
- การกําหนดค่า TLS
- คีย์สโตร์และ Truststore
- การกําหนดค่าการเข้าถึง 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 หรือ Edge UI ซึ่งอธิบายอยู่ในส่วนต่อไปนี้
สร้างโฮสต์เสมือนโดยใช้เบราว์เซอร์
ส่วนนี้จะอธิบายวิธีสร้างโฮสต์เสมือนโดยใช้เบราว์เซอร์ (Edge UI เท่านั้น)
วิธีสร้างโฮสต์เสมือนใหม่ใน UI ของ Edge
- ลงชื่อเข้าใช้ UI การจัดการ Edge
- เลือกผู้ดูแลระบบ > โฮสต์เสมือน
เลือกสภาพแวดล้อมจากรายการแบบเลื่อนลง
Edge จะแสดงรายการโฮสต์เสมือนสําหรับสภาพแวดล้อมนั้น
- หากต้องการสร้างโฮสต์เสมือนใหม่ ให้เลือก + โฮสต์เสมือน
Edge จะแสดงแบบฟอร์ม Create Virtual Host
นอกจากนี้ คุณยังคลิกที่ชื่อของโฮสต์เสมือนที่มีอยู่เพื่อแก้ไขโฮสต์ได้
- กําหนดโฮสต์เสมือนใหม่ของคุณ โปรดทราบว่าช่อง URL หลักต้องมีโปรโตคอล (นั่นคือ ใส่ค่า "http://" หรือ "https://") ไว้ข้างหน้าค่าของช่อง)
นอกจากนี้ โปรดทราบว่า
- คุณสร้างโฮสต์เสมือนได้ไม่จํากัดจํานวน
- TLS เป็นตัวเลือกที่ไม่บังคับและสามารถเป็นเวอร์ชัน 1.0, 1.1 หรือ 1.2
- กําหนดค่าพอร์ตของโฮสต์เสมือน
- คลิกปุ่มสร้างเพื่อบันทึกโฮสต์เสมือนใหม่
สร้างโฮสต์เสมือนด้วย 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 ให้ทําตามขั้นตอนต่อไปนี้
- สร้างโฮสต์เสมือนโดยใช้ 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
- สร้างระเบียน DNS สําหรับโฮสต์เสมือนที่ตรงกับชื่อแทนโฮสต์
- หากมีพร็อกซี API อยู่แล้ว ให้เพิ่มโฮสต์เสมือนลงในองค์ประกอบ
<HTTPConnection>
ในปลายทางพร็อกซี ระบบจะเพิ่มโฮสต์เสมือนลงในพร็อกซี API ใหม่ทั้งหมดโดยอัตโนมัติ ดู การกําหนดค่าพร็อกซี API เพื่อใช้โฮสต์เสมือน
การแก้ไขโฮสต์เสมือน
หากต้องการแก้ไขโฮสต์เสมือน ให้ดําเนินการดังนี้
-
อัปเดตโฮสต์เสมือนโดยใช้ อัปเดตโฮสต์เสมือน โดย
<ms-IP>
คือที่อยู่ IP หรือชื่อโดเมนของโหนดเซิร์ฟเวอร์การจัดการ คุณต้องระบุคําจํากัดความทั้งหมดของโฮสต์เสมือนในส่วนเนื้อหาของคําขอ ไม่ใช่แค่องค์ประกอบที่ต้องการเปลี่ยนแปลง ในตัวอย่างนี้ คุณเปลี่ยนหมายเลขพอร์ตของโฮสต์เสมือนจาก 9008 เป็น 9009curl -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
-
สําหรับ Edge for Private Cloud เวอร์ชัน 4.16.01 และ 4.16.05 เท่านั้น ถ้าคุณแก้ไขโฮสต์เสมือนที่มีอยู่ และเปิดใช้ TLS หรือปิดใช้ TLS โดยไม่เปลี่ยนหมายเลขพอร์ต ให้ทําดังนี้
วิธีหยุดเราเตอร์
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
ลบไฟล์ใน
/opt/nginx/conf.d
rm -f /opt/nginx/conf.d/*
เริ่มต้นเราเตอร์:
/opt/apigee/apigee-service/bin/apigee-service edge-router start
- ทําซ้ําสําหรับเราเตอร์ทั้งหมด