Mengonfigurasi host virtual

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

Pelanggan Cloud dengan akun berbayar dan semua Edge untuk pelanggan Private Cloud dapat membuat {i> host<i} virtual dalam organisasi. Pengguna membuat host virtual harus dalam peran administrator organisasi, atau di peran khusus dengan izin untuk memodifikasi {i>host<i} virtual. Pengguna dalam peran lain tidak memiliki otorisasi untuk membuat {i>host<i} virtual.

Tonton video pengantar tentang host virtual.

Membuat host virtual

Gunakan prosedur dasar berikut untuk membuat host virtual. Prosedur aktual yang Anda gunakan didasarkan pada apakah Anda adalah pelanggan {i>Cloud<i} atau {i>Private Cloud<i}, dan apakah Anda mengaktifkan TLS:

  1. Buat entri DNS dan data CNAME untuk domain Anda yang ditampilkan ke publik.
  2. Jika mengaktifkan TLS pada virtual host:
    1. Buat dan konfigurasi keystore menggunakan prosedur yang dijelaskan di sini: Keystore dan Truststore.
    2. Upload sertifikat dan kunci Anda ke keystore. Pastikan bahwa nama domain yang ditentukan oleh cocok dengan alias {i>host<i} yang ingin Anda gunakan untuk {i>host<i} virtual.
    3. Buat referensi ke keystore dengan menggunakan UI atau API Edge. Referensi menentukan nama keystore dan jenis referensi sebagai KeyStore. Lihat Bekerja dengan referensi untuk tentang cara membuat dan memodifikasi {i>reference<i}.
    4. Jika Anda melakukan TLS dua arah, buat {i>truststore<i}, upload sertifikat, dan membuat referensi ke truststore. Membuat truststore dengan menggunakan prosedur yang dijelaskan di sini: Keystore dan Truststore.
  3. Buat {i>host<i} virtual dengan menggunakan Buat Virtual Host API. Jika mengaktifkan TLS, pastikan untuk menentukan referensi keystore yang benar, referensi truststore, dan alias kunci.
  4. Jika Anda sudah memiliki proxy API, tambahkan host virtual ke ProxyEndpoint. Host virtual ditambahkan secara otomatis ke semua proxy API baru. Lihat Mengonfigurasi proxy API untuk menggunakan host virtual.

Setelah memperbarui proxy API untuk menggunakan host virtual, dan membuat entri DNS serta CNAME untuk alias host, Anda dapat mengakses proxy API seperti yang ditampilkan di bawah ini:

https://api.myCompany.com/v1/project-base-path/resource-path

Contoh:

https://api.myCompany.com/v1/weather/forecastrss?w=12797282

Membuat host virtual menggunakan API atau UI

Anda dapat membuat host virtual menggunakan Edge API atau UI Edge.

Sebagian besar contoh di bawah ini menggunakan Edge API. Untuk mengakses UI guna membuat, mengubah, dan menghapus di UI Edge:

  1. Login ke apigee.com/edge

    Edge untuk pelanggan Private Cloud menggunakan http://ms-ip:9000 (lokal), dengan ms-ip sebagai Alamat IP atau nama DNS node Server Pengelolaan.

  2. Pilih Admin > Host Virtual di menu navigasi sebelah kiri.
  3. Pilih lingkungan, misalnya prod atau test.
    Virtual {i>host<i} yang ditentukan untuk lingkungan tersebut ditampilkan.
  4. Pilih + Host Virtual untuk membuat host virtual atau pilih nama salah {i>host<i} virtual yang ada untuk mengeditnya.

Membuat host virtual untuk HTTP

Edge untuk pelanggan Private Cloud dapat membuat host virtual menggunakan HTTP.

Untuk membuat host virtual yang tidak mendukung TLS, buat objek XML yang menentukan {i>host<i} virtual. Misalnya, objek XML berikut mendefinisikan {i>host<i} virtual yang menggunakan permintaan protokol:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>api.myCompany.com</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>80</Port>
</VirtualHost>

Dalam definisi ini, Anda:

  • Tentukan name sebagai myVHost. Gunakan nama tersebut untuk mereferensikan {i>host<i} virtual di proxy API atau dalam panggilan API.
  • Tetapkan alias host sebagai api.myCompany.com. Ini adalah domain yang ditampilkan ke publik yang digunakan untuk mengakses API Anda, seperti yang ditentukan oleh definisi DNS dan CNAME data.
  • Tentukan nomor port sebagai 80. Jika dihilangkan, secara default portanya ditetapkan ke 443.
  • Ada properti tambahan yang dapat Anda setel di host virtual. Untuk referensi untuk semua properti, lihat Referensi properti host virtual.

Jika Anda sudah memiliki proxy API, tambahkan host virtual ke elemen <HTTPConnection> di Endpoint Proxy. Host virtual ditambahkan secara otomatis ke semua proxy API baru. Lihat Mengonfigurasi proxy API untuk menggunakan host virtual. Jika Anda membuat proxy API baru yang seharusnya tidak dapat diakses melalui {i>host<i} virtual tertentu, Anda harus mengedit proxy API untuk menghapus host virtual tersebut dari ProxyEndpoint-nya.

Selanjutnya, Anda dapat mengakses proxy API melalui host virtual ini dengan membuat permintaan untuk:

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

Buat {i>host<i} virtual dengan menggunakan Buat Virtual Host API:

curl -X POST -H "Content-Type:application/xml" \
  http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
  -d '<VirtualHost name="myVHost">
        <HostAliases>
            <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>80</Port>
    </VirtualHost>' \
  -u sysAdminEmail:password

Membuat host virtual untuk TLS satu arah

Objek XML berikut menentukan host virtual untuk TLS satu arah:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>
</VirtualHost>

Dalam definisi ini, Anda mengaktifkan TLS dengan menyetel elemen <Enable> ke true, dan gunakan elemen <KeyStore> dan <KeyAliase> untuk menentukan keystore dan alias kunci yang digunakan oleh koneksi TLS.

Lihat TLS/SSL untuk informasi selengkapnya informasi tentang penggunaan TLS.

Menentukan cara menentukan keystore dan nama truststore di host virtual

Saat mengonfigurasi host virtual untuk mendukung TLS, Anda menentukan keystore dengan menggunakan referensi ini. Referensi adalah variabel yang berisi nama keystore atau truststore, bukan menentukan keystore atau nama truststore secara langsung, seperti yang ditunjukkan di bawah:

    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>

Keuntungan menggunakan referensi adalah bahwa Anda dapat mengubah nilai referensi untuk mengubah keystore yang digunakan oleh host virtual, biasanya karena sertifikat di keystore saat ini berakhir dalam waktu dekat. Mengubah nilai referensi tidak mengharuskan Anda memulai ulang Router Edge. Lihat Bekerja dengan referensi untuk tentang cara membuat dan memodifikasi {i>reference<i}.

Anda hanya dapat menggunakan referensi ke keystore dan truststore; Anda tidak dapat menggunakan referensi ke alias. Saat Anda mengubah referensi ke keystore, pastikan nama alias sertifikat adalah sama seperti di keystore lama.

Batasan dalam penggunaan referensi ke keystore dan truststore

Anda harus mempertimbangkan batasan berikut saat menggunakan referensi ke keystore dan truststore:

  • Anda hanya dapat menggunakan referensi keystore dan truststore di host virtual jika Anda mendukung SNI dan Anda menghentikan SSL di Router Apigee.
  • Jika Anda memiliki load balancer di depan Router Apigee, dan menghentikan TLS pada Anda tidak dapat menggunakan keystore dan referensi truststore di host virtual.

Membuat host virtual untuk TLS dua arah

Untuk mengaktifkan TLS dua arah, tetapkan elemen <ClientAuthEnabled> ke true, dan menentukan truststore dengan menggunakan referensi dengan elemen <TrustStore>. Truststore menyimpan penerbit sertifikat klien dan rantai CA sertifikat, yang diperlukan. Klien juga harus dikonfigurasi dengan benar untuk TLS dua arah.

Untuk membuat host virtual bagi TLS dua arah, buat objek XML yang mendefinisikan host:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
</VirtualHost>

Dalam definisi ini, Anda:

  • Aktifkan TLS dua arah dengan menyetel <ClientAuthEnabled> ke benar (true).
  • Tentukan referensi ke truststore menggunakan elemen <TrustStore>. Truststore menyimpan penerbit sertifikat klien dan rantai CA sertifikat, yang diperlukan.

Lihat TLS/SSL untuk informasi selengkapnya informasi tentang penggunaan TLS.

Mengubah host virtual

Pelanggan Cloud dengan akun berbayar dan semua pelanggan Edge untuk Private Cloud dapat menggunakan Mengupdate Virtual Host API untuk memperbarui host virtual. API ini memungkinkan Anda menyetel semua properti untuk host virtual yang dijelaskan di Referensi properti host virtual.

Perbarui host virtual dengan menggunakan Mengupdate Virtual Host API. Saat menggunakan API, Anda harus menentukan definisi lengkap dari {i>host<i} virtual dalam isi permintaan, bukan hanya elemen yang ingin Anda ubah.

Dalam contoh ini, Anda menetapkan nilai properti proxy_read_timeout:

curl -X PUT -H "Content-Type:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
    -d '<VirtualHost  name="myTLSVHost">
         <HostAliases>
           <HostAlias>api.myCompany.com</HostAlias>
         </HostAliases>
         <Port>443</Port>
         <SSLInfo>
           <Enabled>true</Enabled>
           <ClientAuthEnabled>false</ClientAuthEnabled>
           <KeyStore>ref://myTestKeystoreRef</KeyStore>
           <KeyAlias>myKeyAlias</KeyAlias>
         </SSLInfo>
         <Properties>
           <Property name="proxy_read_timeout">50</Property>
         </Properties>
     </VirtualHost>' \
    -u orgAdminEmail:password

Menghapus host virtual

Sebelum dapat menghapus host virtual dari lingkungan, Anda harus memperbarui proxy API apa pun yang merujuk ke {i>host<i} virtual untuk menghapus referensi. Lihat Mengonfigurasi proxy API untuk menggunakan proxy virtual host Anda.

Hapus {i>host<i} virtual dengan menggunakan Menghapus Virtual Host API:

curl -X DELETE \
  https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
  -u orgAdminEmail:password

Melihat informasi tentang {i>host<i} virtual

Lihat informasi tentang host virtual yang ditentukan dalam lingkungan, seperti yang dijelaskan di bawah ini.

Edge

Untuk melihat informasi tentang host virtual menggunakan UI Edge:

  1. Login ke apigee.com/edge.

    Edge untuk pelanggan Private Cloud menggunakan http://ms-ip:9000 (lokal), dengan ms-ip sebagai Alamat IP atau nama DNS node Server Pengelolaan.

  2. Pilih Admin > Virtual Hosts di menu navigasi sebelah kiri.
  3. Pilih lingkungan, misalnya prod atau test.

    Virtual {i>host<i} yang ditentukan untuk lingkungan akan muncul. Jika {i>host<i} virtual dikonfigurasi untuk menggunakan keystore atau {i>truststore<i}, klik Tampilkan untuk melihat informasi selengkapnya.

Jika host virtual dikonfigurasi untuk menggunakan TLS/SSL, ikon gembok akan muncul di sebelah nama {i>host<i} virtual. Artinya, sertifikat, kunci, dan rantai sertifikat TLS/SSL telah diupload ke Edge dan terkait dengan host virtual. Untuk melihat informasi tentang model sertifikat:

  1. Pilih Admin > Lingkungan > TLS Keystore di menu navigasi kiri.
  2. Pilih Lingkungan (biasanya prod atau test).
  3. Luaskan keystore untuk melihat sertifikat.

Edge Klasik (Private Cloud)

Untuk melihat informasi tentang host virtual menggunakan UI Edge Klasik:

  1. Login ke http://ms-ip:9000, dengan ms-ip sebagai Alamat IP atau nama DNS node Server Pengelolaan.
  2. Pilih Admin > Virtual Hosts di menu navigasi sebelah kiri.
  3. Pilih lingkungan, misalnya prod atau test.
  4. Klik tab Host Virtual.

    Virtual {i>host<i} yang ditentukan untuk lingkungan akan muncul. Jika {i>host<i} virtual dikonfigurasi untuk menggunakan keystore atau {i>truststore<i}, klik Tampilkan untuk melihat informasi selengkapnya.

    Tab {i>Virtual Hosts<i} menampilkan informasi 
tentang nama, porta, dan
                 alias, dan banyak lagi.

Jika host virtual dikonfigurasi untuk menggunakan TLS/SSL, ikon gembok akan muncul di sebelah nama {i>host<i} virtual. Artinya, sertifikat, kunci, dan rantai sertifikat TLS/SSL telah diupload ke Edge dan terkait dengan host virtual. Untuk melihat informasi tentang model sertifikat:

  1. Pilih Admin > TLS Certificates di menu navigasi atas.
  2. Pilih Lingkungan (biasanya prod atau test).
  3. Luaskan keystore untuk melihat sertifikat.

Melihat host virtual dengan Edge API

Anda juga dapat menggunakan Edge API untuk melihat informasi tentang host virtual. Sebagai contoh, List Virtual Hosts API menampilkan daftar semua host virtual:

curl -X GET -H "accept:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts \
    -u orgAdminEmail:pWord

Dengan orgAdminEmail:pWord adalah nama pengguna dan sandi admin org, dan org_name/env_name menentukan organisasi dan lingkungan yang berisi {i>host<i} virtual. Contoh respons:

[
 "default",
 "secure"
]

Untuk melihat informasi tentang host virtual tertentu, gunakan Dapatkan Virtual Host API:

curl -X GET -H "accept:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
    -u orgAdminEmail:pWord

Dengan vhost_name adalah nama {i>host<i} virtual. Misalnya, Anda dapat menetapkan vhost_name sebagai "secure" dapat lihat konfigurasi host virtual aman default yang dibuat oleh Apigee:

<VirtualHost name="secure">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <Properties/>
    <Interfaces/>
    <RetryOptions/>
    <SSLInfo>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <Enabled>true</Enabled>
        <KeyAlias>freetrial</KeyAlias>
        <KeyStore>ref://freetrial</KeyStore>
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Mengonfigurasi proxy API untuk menggunakan proxy virtual penyelenggara

Saat Anda membuat proxy API baru, Edge akan otomatis mengonfigurasinya agar menggunakan semua {i>host<i} di organisasi. Permintaan ke proxy API melalui host virtual menggunakan bentuk:

https://host-alias/proxy-base-path/resource-path

Dengan keterangan:

  • host-alias biasanya merupakan nama DNS dari host virtual.
  • proxy-base-path ditentukan saat Anda membuat proxy API dan bersifat unik untuk setiap proxy Proxy API.
  • resource-path jalur ke resource yang dapat diakses melalui proxy API.

Mengontrol host virtual yang digunakan oleh proxy API

Dalam konfigurasi XML proxy API, Anda menggunakan tag virtualhost untuk menentukan name host virtual yang terkait dengan proxy API:

<HTTPProxyConnection>
  <BasePath>/v1/my/proxy/basepath</BasePath>
  <VirtualHost>secure</VirtualHost>
  <VirtualHost>default</VirtualHost>
</HTTPProxyConnection>

Misalnya, <VirtualHost>secure</VirtualHost> berarti klien dapat memanggil proxy API menggunakan alias host dari "secure" {i>host<i} virtual.

Anda biasanya memodifikasi host virtual yang terkait dengan proxy API saat:

  • Anda membuat host virtual baru dan memiliki proxy API yang sudah ada. Anda harus mengedit API yang sudah ada {i>proxy<i} untuk menambahkan {i> host<i} virtual baru.
  • Anda membuat proxy API baru yang seharusnya tidak dapat diakses melalui host virtual tertentu. Anda harus mengedit proxy API untuk menghapus host virtual tersebut dari definisinya.

Untuk memodifikasi host virtual yang terkait dengan proxy API:

  1. Akses editor proxy API, seperti yang dijelaskan di bawah.

    Edge

    Untuk mengakses editor proxy API menggunakan UI Edge:

    1. Login ke apigee.com/edge.

      Edge untuk pelanggan Private Cloud menggunakan http://ms-ip:9000 (lokal), dengan ms-ip sebagai Alamat IP atau nama DNS node Server Pengelolaan.

    2. Pilih Develop > Proxy API di menu navigasi sebelah kiri.
    3. Pilih proxy API yang ingin Anda edit dalam daftar.

    Edge Klasik (Private Cloud)

    Untuk mengakses editor proxy API menggunakan UI Classic Edge:

    1. Login ke http://ms-ip:9000, dengan ms-ip sebagai Alamat IP atau nama DNS node Server Pengelolaan.
    2. Pilih API > Proxy API di menu navigasi atas.
    3. Pilih proxy API yang ingin Anda edit dalam daftar.
  2. Klik tab Mengembangkan.
  3. Di bagian Endpoint Proxy, pilih default.
  4. Di area kode:
    1. Hapus elemen <VirtualHost> untuk {i>host<i} virtual yang tidak didukung oleh proxy API.
    2. Tambahkan elemen <VirtualHost> baru dengan nama {i>host<i} virtual baru. Misalnya, jika {i> host<i} virtual baru diberi nama MyVirtualHost, tambahkan tag berikut:
      <HTTPProxyConnection>
        <BasePath>/v1/my/proxy/basepath</BasePath>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
        <VirtualHost>MyVirtualHost</VirtualHost>
      </HTTPProxyConnection>
  5. Simpan proxy API. Jika proxy API telah di-deploy, proxy API ini akan di-deploy ulang dengan proxy deskripsi tempat.

Menyetel URL dasar yang ditampilkan oleh UI Edge untuk proxy API

UI Edge menampilkan URL proxy API berdasarkan setelan di host virtual sesuai dengan tempat {i>proxy<i} di-deploy. Layar ini dapat berisi nomor port Router {i>host<i} virtual.

Pada umumnya, URL yang ditampilkan di UI Edge adalah URL yang benar untuk dibuat permintaan ke proxy. Namun, untuk beberapa konfigurasi, URL yang ditampilkan salah. Sebagai contoh, salah satu konfigurasi berikut dapat menyebabkan URL yang ditampilkan tidak sesuai dengan URL sebenarnya yang digunakan untuk membuat permintaan eksternal ke proxy:

  • Penghentian SSL terjadi di load balancer
  • Pemetaan port terjadi antara load balancer dan Router Apigee
  • Load balancer yang dikonfigurasi dengan penulisan ulang jalur

Edge mendukung atribut pada host virtual yang disebut <BaseUrl> yang memungkinkan Anda mengganti URL yang ditampilkan oleh UI Edge. Berikut contoh yang menampilkan objek host virtual dengan atribut <BaseUrl>. Dalam contoh ini, nilai "http://myCo.com" muncul di UI Edge:

<VirtualHost name="myTLSVHost">
  <HostAliases>
    <HostAlias>api.myCompany.com</HostAlias>
  </HostAliases>
  <BaseUrl>http://myCo.com</BaseUrl>
  <Port>443</Port>
  <SSLInfo>
    <Enabled>true</Enabled>
    <ClientAuthEnabled>false</ClientAuthEnabled>
    <KeyStore>ref://myTestKeystoreRef</KeyStore>
    <KeyAlias>myKeyAlias</KeyAlias>
  </SSLInfo>
</VirtualHost>

Perhatikan bahwa nilai <BaseUrl> harus menyertakan protokol (yaitu, "http://" atau "https://").

Jika <BaseUrl> tidak disetel, URL default yang dirender oleh UI Edge akan akan ditampilkan sebagai: "api.myCompany.com", sedangkan alias host yang sebenarnya adalah "http://myCo.com".