การตั้งค่าโฮสต์เสมือน

Edge สำหรับ Private Cloud เวอร์ชัน 4.17.01

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

ในฐานะส่วนหนึ่งของกระบวนการเริ่มต้นใช้งาน Edge คุณต้องสร้างองค์กร สภาพแวดล้อม และโฮสต์เสมือน Edge มีคำสั่ง setup-org เพื่อให้ขั้นตอนนี้ง่ายขึ้นสำหรับผู้ใช้ใหม่

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

  • ชื่อของโฮสต์เสมือนที่คุณใช้เพื่ออ้างอิงในพร็อกซี API
  • พอร์ตบนเราเตอร์สำหรับโฮสต์เสมือน โดยปกติแล้วพอร์ตเหล่านี้จะเริ่มต้นที่ 9001 และเพิ่มขึ้นทีละ 1 พอร์ตสำหรับแต่ละโฮสต์เสมือนใหม่
  • ชื่อแทนโฮสต์ของโฮสต์เสมือน โดยทั่วไปจะเป็นชื่อ DNS ของโฮสต์เสมือน

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

เช่น หากคุณสร้างโฮสต์เสมือนที่มีชื่อแทนโฮสต์ 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 ของเราเตอร์ และส่งชื่อแทนโฮสต์ไปยังส่วนหัวของโฮสต์

    หมายเหตุ: คำสั่ง curl, เบราว์เซอร์ส่วนใหญ่ และยูทิลิตีอื่นๆ อีกมากมายจะต่อท้ายส่วนหัวของโฮสต์ด้วยโดเมนเป็นส่วนหนึ่งของคำขอโดยอัตโนมัติ เพื่อให้คุณใช้คำสั่ง curl ในแบบฟอร์มได้จริงๆ ดังนี้


    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 จากนั้นคุณต้องส่งส่วนหัวโฮสต์ในทุกคำขอ โดยทำดังนี้

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}

การใช้พอร์ตที่มีการป้องกันในโฮสต์เสมือน

หากต้องการสร้างโฮสต์เสมือนที่ผูกเราเตอร์กับพอร์ตที่มีการป้องกัน เช่น หมายเลขพอร์ตที่น้อยกว่า 1024 คุณจะต้องกำหนดค่าเราเตอร์ให้ทำงานในฐานะผู้ใช้ที่มีสิทธิ์เข้าถึงพอร์ตเหล่านั้น โดยค่าเริ่มต้น เราเตอร์จะทำงานเป็นผู้ใช้ "apigee" ซึ่งไม่มีสิทธิ์เข้าถึงพอร์ตที่ได้รับสิทธิ์

หากต้องการเรียกใช้เราเตอร์ในฐานะผู้ใช้อื่น ให้ทำดังนี้

  1. ในรูท ให้สร้างไฟล์ /opt/apigee/etc/edge-router.d/RUN_USER.sh
  2. เพิ่มรายการต่อไปนี้ลงในไฟล์
    RUN_USER=root
    หากไม่ต้องการเรียกใช้เราเตอร์เป็นรูท ให้ระบุผู้ใช้ที่มีสิทธิ์เข้าถึงพอร์ตดังกล่าว
  3. บันทึกไฟล์
  4. หากคุณระบุผู้ใช้ที่ไม่ใช่รูท ให้เปลี่ยนเจ้าของไฟล์เป็นผู้ใช้รายนั้น
    > chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh
  5. รีสตาร์ทเราเตอร์ โดยทำดังนี้
    > /opt/apigee/apigee-service/bin/apigee-service edge-routerรีสตาร์ท