Giới thiệu về máy chủ ảo

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Trong Edge, Trình định tuyến xử lý tất cả lưu lượng truy cập API đến. Điều đó có nghĩa là tất cả các yêu cầu HTTP và HTTPS đến một proxy API sẽ được Bộ định tuyến Edge xử lý trước.

Máy chủ lưu trữ ảo cho phép bạn lưu trữ nhiều tên miền trên một máy chủ. Đối với Edge, máy chủ tương ứng với một Bộ định tuyến Edge. Bằng cách xác định nhiều máy chủ ảo trên một Trình định tuyến, Trình định tuyến có thể xử lý các yêu cầu API đến nhiều tên miền.

Máy chủ ảo trên Edge xác định giao thức truy cập (HTTP hoặc HTTPS), cổng Bộ định tuyến đang mở và bí danh máy chủ. Bí danh máy chủ lưu trữ thường là tên miền DNS liên kết với địa chỉ IP của Bộ định tuyến.

Ví dụ: hình ảnh sau đây cho thấy một Trình định tuyến có hai định nghĩa máy chủ ảo:

Máy chủ ảo đầu tiên xử lý các yêu cầu HTTPS trên miền domainName1, còn máy chủ thứ hai xử lý các yêu cầu HTTP trên domainName2.

Trên một yêu cầu đến proxy API, Trình định tuyến so sánh tiêu đề Host của yêu cầu đến với danh sách bí danh máy chủ do tất cả máy chủ ảo xác định để xác định máy chủ ảo nào xử lý yêu cầu.

Giới thiệu về định nghĩa máy chủ lưu trữ ảo

Máy chủ ảo chứa các thông tin sau:

  • Tên nội bộ của máy chủ ảo. Bạn sử dụng tên đó để tham chiếu máy chủ ảo trong proxy API và khi định cấu hình máy chủ ảo.
  • Tên đại diện của máy chủ lưu trữ của máy chủ lưu trữ ảo. Thông thường, bí danh máy chủ lưu trữ là tên miền DNS liên kết với địa chỉ IP trên Bộ định tuyến. Tiêu đề Host của yêu cầu proxy API phải chứa bí danh máy chủ của máy chủ ảo.
  • Cổng mở trên Bộ định tuyến.
  • Liệu TLS (Truy cập HTTPS) có được bật (Truy cập HTTP) hay không.

Ví dụ: bạn chỉ định những thông tin sau khi tạo máy chủ ảo:

  • name = myvhost
  • host alias = apis.acme.com
  • port = 443
  • Đã bật TLS

Dựa trên chế độ cài đặt ở trên đối với máy chủ ảo, yêu cầu đến proxy API sẽ sử dụng biểu mẫu:

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

trong đó:

  • {proxy-base-path} được xác định khi bạn tạo một proxy API và là duy nhất cho mỗi proxy API. Ví dụ:
    https://apis.acme.com/characters
  • {resource-path} đường dẫn đến tài nguyên có thể truy cập được thông qua proxy API. Ví dụ:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Giới thiệu về máy chủ ảo trong Edge cho đám mây

Mỗi tổ chức Edge sẽ tự động bao gồm 2 môi trường (testprod), 2 máy chủ ảo trong mỗi môi trường (mặc địnhbảo mật) và các bản ghi DNS cho mỗi bí danh máy chủ lưu trữ.

Bí danh máy chủ lưu trữ của mỗi máy chủ lưu trữ ảo do Apigee cung cấp chứa tên của tổ chứcmôi trường, như trong bảng sau:

Môi trường Tên máy chủ lưu trữ ảo Tên đại diện của máy chủ lưu trữ Cổng Đã bật TLS
prod mặc định {org-name}-prod.apigee.net 80 Không
bảo mật {org-name}-prod.apigee.net 443
thử nghiệm mặc định {org-name}-test.apigee.net 80 Không
bảo mật {org-name}-test.apigee.net 443

Ví dụ: tên miền mặc định của một tổ chức có tên là "myorg" trong môi trường prod là "myorg-prod.apigee.net". Do đó, để truy cập vào proxy API trong tổ chức đó, bạn sử dụng URL ở dạng:

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

Các gói trả phí của Apigee: Tên miền chứa "apigee.net" có thể không phải là tên miền mà bạn muốn hiển thị cho khách hàng. Bạn có thể sử dụng mục nhập DNS và bản ghi CNAME để liên kết tên miền với tổ chức của mình trên Edge. Bạn cũng phải tạo một máy chủ ảo có bí danh máy chủ lưu trữ được đặt là tên miền đó. Điều này cho phép nhà phát triển truy cập vào API của bạn thông qua một miền dành riêng cho công ty của bạn.

Dưới đây là ví dụ về một miền tuỳ chỉnh trong Edge:

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

Giới thiệu về máy chủ ảo trên Edge dành cho Cloud riêng tư

Khi bạn cài đặt Apigee Edge cho Private Cloud, hệ thống sẽ không tạo cho bạn tổ chức, môi trường hoặc máy chủ ảo mặc định. Sau khi hoàn tất quy trình cài đặt Edge, thông thường, hành động đầu tiên của bạn là tạo một tổ chức, môi trường và máy chủ ảo thông qua quy trình "giới thiệu".

Để thực hiện quy trình làm quen, hãy chạy lệnh sau trên nút Máy chủ quản lý Edge:

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

nơi configFile chứa thông tin cần thiết để tạo người dùng, tổ chức, môi trường và máy chủ lưu trữ ảo.

Ví dụ: bạn tạo:

  • Một người dùng mà bạn chọn để làm quản trị viên tổ chức
  • Một tổ chức có tên example
  • Một môi trường trong tổ chức có tên là prod
  • Một máy chủ ảo trong môi trường có tên là default cho phép truy cập HTTP trên cổng 9001
  • Bí danh máy chủ của tên DNS dùng để truy cập vào Bộ định tuyến hoặc địa chỉ IP của Bộ định tuyến và cổng của máy chủ ảo ở dạng IP:9001.

Sau đó, bạn có thể thêm số lượng tổ chức, môi trường và máy chủ ảo bất kỳ vào phiên bản Edge tại cơ sở. Để biết thêm thông tin, hãy xem các bài viết sau:

Máy chủ ảo được mở trên Bộ định tuyến cạnh. Do đó, bạn phải đảm bảo cổng mà bạn chỉ định cho máy chủ ảo đang mở trên Bộ định tuyến. Bạn có thể sử dụng lệnh ở dạng bên dưới để mở cổng:

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

Sau khi chạy lệnh đó, bạn có thể truy cập vào các API bằng cách sử dụng URL ở dạng:

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

Thông thường, bạn không phát hành API cho khách hàng bằng địa chỉ IP và số cổng. Thay vào đó, bạn xác định một mục nhập DNS cho bộ định tuyến và cổng. Ví dụ:

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

Khi xác định mục DNS, bạn cũng phải tạo một máy chủ ảo có bí danh máy chủ lưu trữ khớp với tên miền của mục DNS đó. Từ ví dụ trên, bạn sẽ chỉ định email đại diện của máy chủ lưu trữ myAPI.myCo.com khi tạo máy chủ ảo.

Giới thiệu về bí danh máy chủ lưu trữ và tên DNS

Một thuộc tính mà bạn đặt cho máy chủ ảo là bí danh máy chủ. Bí danh máy chủ lưu trữ thường là tên DNS của máy chủ lưu trữ ảo. Cách đặt bí danh máy chủ lưu trữ phụ thuộc vào loại cài đặt Edge của bạn: Đám mây hay Đám mây riêng tư.

Tên đại diện và tên DNS của máy chủ lưu trữ trong Edge for the Cloud

Trong Edge for the Cloud, khi bạn tạo tổ chức Edge lần đầu tiên, Apigee sẽ tự động tạo hai môi trường (testprod), hai máy chủ lưu trữ ảo trong mỗi môi trường (mặc địnhan toàn) và bản ghi DNS cho mỗi máy chủ lưu trữ ảo.

Bí danh máy chủ lưu trữ của máy chủ ảo chứa tên của tổ chức và môi trường. Do đó, yêu cầu thông qua máy chủ lưu trữ ảo có dạng:

  • 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}

Thông thường, bạn nên tạo các máy chủ ảo sử dụng tên miền của bạn thay vì sử dụng miền apigee.net mặc định. Để thực hiện, trước tiên, bạn phải tạo mục nhập DNS và bản ghi CNAME của riêng mình.

Hình sau đây cho thấy cấu hình thông thường về cách Edge xử lý yêu cầu API:

Trong ví dụ này:

  • api.acme.com là tên miền mà bạn muốn.
  • Bạn xác định một mục nhập DNS và bản ghi CNAME để trỏ api.acme.com đến acme-prod.apigee.net.
  • Yêu cầu chứa tiêu đề Host mà Bộ định tuyến sử dụng để xác định máy chủ ảo xử lý yêu cầu.

Trong ví dụ này, bạn chỉ định thông tin sau trong định nghĩa máy chủ ảo:

  • tên = myvhost
  • host alias = apis.acme.com
  • cổng = 443
  • Bật quyền truy cập TLS

Hãy xem phần Định cấu hình máy chủ ảo cho Cloud để biết thêm thông tin.

Tên đại diện và tên DNS của máy chủ lưu trữ trong Edge for Private Cloud

Tương tự như Edge for the Cloud, bạn tạo máy chủ lưu trữ ảo sử dụng tên miền của riêng mình cho bí danh máy chủ lưu trữ. Sau đó, bạn tạo mục DNS và bản ghi CNAME của riêng mình để truy cập vào các máy chủ ảo đó.

Một trong những điểm khác biệt giữa Cloud và Private Cloud là trong Cloud, Apigee sẽ tự động tạo tên DNS cho các tổ chức của bạn, ở dạng:

  • name=default: http://{org-name}-{env-name}.apigee.net (Cổng bộ định tuyến 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (Cổng bộ định tuyến 443)

Trong Edge cho đám mây riêng tư, bạn phải tạo các mục nhập DNS cho địa chỉ IP và cổng của Trình định tuyến.

Ví dụ: bạn chỉ định thông tin này trong định nghĩa máy chủ ảo:

  • name = myvhost
  • bí danh máy chủ lưu trữ = apis.acme.com
  • port = 9001
  • Bật quyền truy cập TLS

Hình sau đây cho thấy cấu hình thông thường về cách Edge xử lý yêu cầu API:

Trong ví dụ này:

  • api.acme.com là tên miền mà bạn muốn.
  • Bạn xác định một mục nhập DNS và bản ghi CNAME để trỏ api.acme.com đến địa chỉ IP và cổng của Bộ định tuyến.
  • Yêu cầu này chứa tiêu đề Host mà Bộ định tuyến sử dụng để xác định máy chủ ảo xử lý yêu cầu.

Hãy xem bài viết Định cấu hình máy chủ ảo cho đám mây riêng để biết thêm thông tin.

Tên đại diện và ký tự đại diện của máy chủ lưu trữ

Bạn có thể thêm ký tự đại diện "*" vào bí danh máy chủ lưu trữ. Ký tự đại diện "*" chỉ có thể ở đầu (trước dấu "." đầu tiên) của bí danh máy chủ lưu trữ và không được kết hợp với các ký tự khác.

Sau đây là ví dụ về một bí danh máy chủ hợp lệ sử dụng ký tự đại diện:

*.example.com

Sau đây là ví dụ về những giá trị không hợp lệ:

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

Việc sử dụng ký tự đại diện trong bí danh máy chủ ảo cho phép các proxy API xử lý các lệnh gọi đến nhiều miền con như alpha.example.com, beta.example.com hoặc live.example.com. Việc sử dụng bí danh ký tự đại diện cũng giúp bạn sử dụng ít máy chủ ảo hơn trên mỗi môi trường để nằm trong giới hạn sản phẩm, vì một máy chủ ảo có ký tự đại diện chỉ được tính là một máy chủ ảo.

Chứng chỉ TLS cho máy chủ ảo phải có ký tự đại diện khớp trong tên CN của chứng chỉ. Ví dụ: *.example.com.

Giới thiệu về thuộc tính lưu trữ ảo

Trong Edge, máy chủ lưu trữ ảo được biểu thị bằng một đối tượng XML. Ví dụ: đối tượng XML sau đây xác định một máy chủ ảo:

<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>

Danh sách thuộc tính mà bạn có thể đặt dựa trên việc bạn đang sử dụng Edge cho đám mây hay Edge cho đám mây riêng tư. Nếu bạn đang sử dụng Edge cho Private Cloud, danh sách tài sản có sẵn cũng phụ thuộc vào phiên bản Edge của bạn. Để biết nội dung mô tả đầy đủ về tất cả thuộc tính của máy chủ lưu trữ ảo, hãy xem nội dung Tài liệu tham khảo về thuộc tính máy chủ lưu trữ ảo.

Để biết thêm thông tin về cách tạo máy chủ lưu trữ ảo cho phiên bản Edge cụ thể, hãy xem: