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, một Bộ định tuyến sẽ xử lý tất cả lưu lượng truy cập API đến. Tức là tất cả các yêu cầu HTTP và HTTPS đến một proxy API đều được Bộ định tuyến Edge xử lý trước.

Máy chủ ả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 cạnh. Bằng cách xác định nhiều máy chủ ảo trên một Bộ định tuyến, Bộ định tuyến có thể xử lý các yêu cầu API cho 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 mở và bí danh của máy chủ. Bí danh của máy chủ lưu trữ thường là tên miền DNS ánh xạ tới địa chỉ IP của Bộ định tuyến.

Ví dụ: hình ảnh sau đây cho thấy một Bộ định tuyến với 2 đị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 và máy chủ lưu trữ ảo thứ hai xử lý các yêu cầu HTTP trên domainName2.

Khi có yêu cầu proxy API, Bộ định tuyến sẽ so sánh tiêu đề Host của yêu cầu đến với danh sách bí danh máy chủ được 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ủ ảo

Máy chủ ảo chứa những 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 các proxy API và khi định cấu hình máy chủ ảo.
  • Bí danh máy chủ của máy chủ ảo. Thông thường, bí danh của máy chủ 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 các yêu cầu proxy API phải chứa bí danh của máy chủ lưu trữ ảo.
  • Một cổng đang mở trên Bộ định tuyến.
  • Liệu TLS (quyền truy cập HTTPS) có được bật hay không (truy cập HTTP).

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

  • tên = myvhost
  • máy chủ lưu trữ bí danh = apis.acme.com
  • cổng = 443
  • TLS đang bật

Dựa trên chế độ cài đặt ở trên của máy chủ ảo, yêu cầu tới 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 proxy API và là giá trị riêng biệ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 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 dành 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à bản ghi DNS cho mỗi bí danh của máy chủ.

Tên đại diện của mỗi máy chủ ảo do Apigee cung cấp sẽ chứa tên của tổ chứcmôi trường, như minh hoạ trong bảng sau:

Môi trường Tên máy chủ ảo Email đại diện của máy chủ lưu trữ Cổng Đã bật TLS
sản phẩm 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 tổ chức có tên "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 cần sử dụng URL có dạng:

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

Gói có tính phí API: Tên miền chứa "apigee.net" có thể không phải là nội dung 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 của máy chủ được đặt thành tên miền đó. Việc này cho phép nhà phát triển truy cập 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 cho Đám mây riêng tư

Khi bạn cài đặt Apigee Edge cho Đám mây riêng tư, không có tổ chức, môi trường hoặc máy chủ ảo mặc định nào được tạo cho bạn. Sau khi hoàn tất quá trình cài đặt Edge, hành động đầu tiên thường 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 giới thiệu, hãy chạy lệnh sau trên nút Máy chủ quản lý cạnh:

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

trong đó 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ủ ảo.

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

  • Người dùng mà bạn chọn để hoạt động với tư cách là quản trị viên tổ chức
  • Một tổ chức có tên là example
  • Một môi trường trong tổ chức có tên là prod
  • Máy chủ ảo trong môi trường có tên default cho phép truy cập HTTP trên cổng 9001
  • Bí danh của máy chủ lưu trữ của tên DNS dùng để truy cập Bộ định tuyến hoặc địa chỉ IP của Bộ định tuyến và cổng của máy chủ ảo có 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 trên cơ sở hạ tầng riêng. Để biết thêm thông tin, hãy xem các bài viết sau:

Máy chủ ảo sẽ đượ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 đã mở trên Bộ định tuyến. Bạn có thể sử dụng một lệnh trong biểu mẫu 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 các API của mình bằng cách sử dụng URL có 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 sẽ xác định 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 nhập DNS, bạn cũng phải tạo một máy chủ ảo với bí danh của máy chủ lưu trữ khớp với tên miền của mục nhập DNS. Từ ví dụ trên, bạn chỉ định bí danh máy chủ lưu trữ của myAPI.myCo.com khi tạo máy chủ ảo.

Giới thiệu về bí danh của máy chủ và tên DNS

Một thuộc tính mà bạn đặt cho máy chủ ảo là email đại diện của máy chủ. Bí danh máy chủ lưu trữ thường là tên DNS của máy chủ ảo. Cách bạn đặt bí danh của máy chủ lưu trữ tuỳ thuộc vào loại chế độ cài đặt Edge: Cloud hay Private Cloud.

Email đại diện của máy chủ lưu trữ và tên DNS trong Edge dành cho đám mây

Trong Edge dành cho đám mây, khi bạn tạo một tổ chức Edge lần đầu tiên, Apigee sẽ tự động tạo 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à bản ghi DNS cho từng máy chủ ả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ủ ảo có biểu mẫu như sau:

  • 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ì 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 việc này, trước tiên, bạn phải tạo mục DNS và bản ghi CNAME của riêng mình.

Hình sau đây cho thấy một cấu hình thông thường của cách Edge xử lý một 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ụ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
  • máy chủ lưu trữ bí danh = apis.acme.com
  • cổng = 443
  • Bật quyền truy cập TLS

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

Email đại diện của máy chủ và tên DNS trong Edge dành cho đám mây riêng tư

Tương tự như với Edge dành cho đám mây, bạn tạo máy chủ ảo sử dụng tên miền của riêng bạn cho bí danh của máy chủ. Sau đó, bạn tạo mục nhập DNS và bản ghi CNAME của riêng mình để truy cập 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 được tạo tự động các tên DNS cho tổ chức của bạn dưới 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 dành 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 Bộ định tuyến.

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

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

Hình sau đây cho thấy một cấu hình thông thường của cách Edge xử lý một 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ụ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 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.

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

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

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

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

*.example.com

Các ví dụ sau đây là 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 proxy API xử lý các lệnh gọi được 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 để không vượt quá giới hạn của sản phẩm, vì 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 phù hợp trong tên CN của chứng chỉ. Ví dụ: *.example.com.

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

Trong Edge, máy chủ ả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 các thuộc tính mà bạn có thể đặt sẽ dựa trên việc bạn sử dụng Edge cho Đám mây hay Edge cho Đám mây riêng tư. Nếu bạn dùng Edge cho Đám mây riêng tư, thì danh sách các tài sản có sẵn cũng phụ thuộc vào phiên bản Edge của bạn. Để xem nội dung mô tả đầy đủ về tất cả thuộc tính của một máy chủ lưu trữ ảo, hãy xem bài viết Tài liệu tham khảo về thuộc tính của máy chủ ảo.

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