Referensi properti host virtual

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

Representasi host virtual

Objek XML yang Anda gunakan untuk mendefinisikan host virtual didasarkan pada versi Edge: Cloud atau Private Cloud Anda.

Jika Anda adalah pelanggan Private Cloud, pastikan Anda menggunakan XML yang benar untuk versi Edge Anda.

Cloud dan Private Cloud 4.17.01 dan yang lebih baru

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <BaseUrl>http://myCo.com</BaseUrl>
    <OCSPStapling>offOn</OCSPStapling>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    </Interfaces>
    <RetryOptions>
        <RetryOption>option</RetryOption>
    </RetryOptions>
    <ListenOptions>
        <ListenOption>option</ListenOption>
    </ListenOptions>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <!-- UseBuiltInFreeTrialCert is for Edge Cloud only -->
    <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert>
    <PropagateTLSInformation>
        <!-- PropagateTLSInformation is Alpha in the Cloud only -->
        <ConnectionProperties>trueFalse</ConnectionProperties>
        <ClientProperties>trueFalse</ClientProperties>
    </PropagateTLSInformation>
    <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>
        <!-- ssl_protocols is Private Cloud only -->
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Private Cloud 4.16.01 hingga 4.16.09

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Private Cloud 4.15.07 dan yang lebih lama

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>keystore</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>truststore</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
        <Ciphers>
             <Cipher>cipher</Cipher>
             <Cipher>cipher</Cipher>
         </Ciphers>
         <Protocols>
             <Protocol>protocol</Protocol>
             <Protocol>protocol</Protocol>
         </Protocols>
    </SSLInfo>
</VirtualHost>

Properti konfigurasi host virtual

Tabel berikut mencantumkan properti yang Anda gunakan untuk mengonfigurasi host virtual:

Properti Deskripsi Default Wajib
VirtualHost

Menentukan nama host virtual. Anda menggunakan nama tersebut untuk mereferensikan host virtual saat mengonfigurasi proxy API.

Karakter yang dapat digunakan dalam atribut nama dibatasi untuk: A-Z0-9._\-$%.

Tidak ada Ya
Port

Menentukan nomor port yang digunakan oleh host virtual. Pastikan port terbuka di Router Edge.

Jika Anda menentukan port dalam elemen hostalias, nomor port yang ditentukan oleh <Port> harus cocok.

Untuk Cloud: Anda harus menentukan port 443 saat membuat host virtual. Jika dihilangkan, secara default port akan ditetapkan ke 443. Jika sudah memiliki host virtual yang menggunakan port selain 443, Anda tidak dapat mengubah port.

Untuk rilis Private Cloud 4.16.01 hingga 4.17.05: Saat membuat host virtual, tentukan port Router yang digunakan oleh host virtual. Misalnya, port 9001. Secara default, Router berjalan sebagai pengguna "apigee" yang tidak memiliki akses ke port istimewa, biasanya port 1024 dan yang lebih lama. Jika ingin membuat host virtual yang mengikat Router ke port yang dilindungi, Anda harus mengonfigurasi Router agar dijalankan sebagai pengguna yang memiliki akses ke port tersebut. Lihat Menyiapkan host virtual untuk mengetahui informasi selengkapnya.

Untuk rilis Private Cloud sebelum 4.16.01: Router hanya dapat memproses satu koneksi HTTPS per host virtual, pada port tertentu, dengan sertifikat yang ditentukan. Oleh karena itu, beberapa host virtual tidak dapat menggunakan nomor port yang sama jika penghentian TLS terjadi di Router pada port yang ditentukan.

Tidak ada Ya
BaseUrl Mengganti URL yang ditampilkan oleh UI Edge untuk proxy API yang di-deploy ke host virtual. Berguna saat Anda memiliki load balancer eksternal di depan Router Edge. Lihat Mengonfigurasi akses TLS ke API untuk Private Cloud untuk mengetahui informasi selengkapnya.

Nilai BaseUrl harus menyertakan protokol (yaitu, "http://" atau "https://").

Tidak ada Tidak
OCSPStapling

Klien OCSP (Online Certificate Status Protocol) mengirim permintaan status ke responden OCSP untuk menentukan apakah sertifikat TLS valid. Respons akan menunjukkan apakah sertifikat TLS valid dan tidak dicabut.

Jika diaktifkan, stapling OCSP memungkinkan Edge, yang bertindak sebagai server TLS untuk TLS satu arah, membuat kueri terhadap responden OCSP secara langsung, lalu meng-cache respons. Edge kemudian menampilkan respons ini ke klien TLS, atau menguncinya, sebagai bagian dari handshake TLS. Lihat Mengaktifkan Stapling OCSP di Server Anda untuk mengetahui informasi selengkapnya.

TLS harus diaktifkan untuk mengaktifkan stapling OCSP. Setel ke on untuk mengaktifkan. Nilai defaultnya adalah off.

nonaktif Tidak
HostAliases
HostAlias

Nama DNS host virtual yang terlihat secara publik pada Router, secara opsional menyertakan nomor port. Kombinasi nama alias host dan nomor port untuk host virtual harus unik untuk semua host virtual dalam penginstalan Edge. Artinya, beberapa host virtual dapat menggunakan nomor port yang sama jika memiliki alias host yang berbeda.

Anda harus membuat entri DNS dan data CNAME yang cocok dengan alias host, dan alias host harus cocok dengan string yang diteruskan klien di header Host.

Nomor port di HostAlias bersifat opsional. Jika menentukan port sebagai bagian dari alias host, Anda juga harus menentukan port yang sama menggunakan elemen <Port>. Atau, Anda dapat menentukan dua elemen HostAlias, satu dengan nomor port dan satu tanpa nomor port.

Anda dapat memiliki beberapa definisi HostAlias dalam definisi host virtual yang sama, yang sesuai dengan beberapa entri DNS untuk host virtual, tetapi tidak untuk beberapa port. Jika Anda menginginkan beberapa port, buatlah beberapa definisi host virtual dengan port berbeda.

Anda dapat menyertakan karakter pengganti "*" dalam alias host. Karakter pengganti "*" hanya boleh berada di awal (sebelum ".") dari alias host, dan tidak dapat dicampur dengan karakter lain. Misalnya, *.example.com. Sertifikat TLS untuk host virtual harus memiliki karakter pengganti yang cocok pada nama CN sertifikat. Misalnya, *.example.com. Penggunaan karakter pengganti dalam alias host virtual memungkinkan proxy API menangani panggilan yang dialamatkan ke beberapa subdomain seperti alpha.example.com, beta.example.com, atau live.example.com. Penggunaan alias karakter pengganti juga membantu Anda menggunakan lebih sedikit host virtual per lingkungan agar tidak melebihi batas produk, karena host virtual dengan karakter pengganti hanya dihitung sebagai satu host virtual.

Untuk Cloud: Jika sudah memiliki host virtual yang menggunakan port selain 443, Anda tidak dapat menambahkan atau menghapus alias host.

Untuk Private Cloud: Jika Anda menetapkan alias host menggunakan alamat IP Router, dan bukan entri DNS, tambahkan alias host terpisah untuk setiap Router, dengan menentukan alamat IP setiap Router dan port host virtual.

Tidak ada Ya
Antarmuka Hanya tersedia untuk Edge untuk Private Cloud.
Antarmuka

Menentukan antarmuka jaringan yang ingin Anda kaitkan dengan port. Jika elemen ini dihilangkan, port akan terikat pada semua antarmuka.

Misalnya, untuk menentukan cara mengikat port ke en0 saja:

<Interfaces>
  <Interface>en0</Interface>
</Interfaces>

Tentukan antarmuka yang tersedia di sistem Anda dengan menjalankan perintah "ifconfig -a".

Tidak ada Semua antarmuka
RetryOptions Tersedia untuk Edge Cloud serta untuk Private Cloud 4.18.01 dan yang lebih baru.
RetryOption

Konfigurasi cara Router bereaksi terhadap host virtual ini saat Prosesor Pesan tidak aktif.

Anda dapat menentukan beberapa nilai dengan menggunakan <RetryOption>. Nilai yang valid meliputi:

off Menonaktifkan percobaan ulang, dan host virtual menampilkan kode kegagalan berdasarkan permintaan.
http_599 (Default) Jika Router menerima respons HTTP 599 dari Pemroses Pesan, Router akan meneruskan permintaan ke Pemroses Pesan berikutnya.

HTTP 599 adalah kode respons khusus yang dihasilkan oleh Pemroses Pesan saat sedang dinonaktifkan. Pemroses Pesan mencoba menyelesaikan semua permintaan yang ada, tetapi untuk setiap permintaan baru, Pemroses Pesan akan merespons dengan HTTP 599 guna memberi sinyal ke Router untuk mencoba lagi permintaan tersebut di Pemroses Pesan berikutnya.

error Jika terjadi error saat membuat koneksi dengan Pemroses Pesan, meneruskan permintaan ke Pemroses Pesan, atau membaca header respons darinya, Router akan meneruskan permintaan tersebut ke Pemroses Pesan berikutnya.
timeout Jika waktu tunggu habis saat membuat koneksi dengan Pemroses Pesan, meneruskan permintaan ke Pemroses Pesan, atau membaca header respons darinya, Router akan meneruskan permintaan tersebut ke Pemroses Pesan berikutnya.
invalid_header Jika Pemroses Pesan menampilkan respons kosong atau tidak valid, Router akan meneruskan permintaan ke Pemroses Pesan berikutnya.
http_XXX Jika Pemroses Pesan menampilkan respons dengan kode HTTP XXX, Router akan meneruskan permintaan ke Pemroses Pesan berikutnya.

Jika Anda menentukan beberapa nilai, Router akan menggunakan OR logis untuk menggabungkannya.

Contoh:

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions Tersedia untuk Private Cloud 4.18.01 dan yang lebih baru serta untuk Edge Cloud dengan mengajukan permintaan ke Dukungan Apigee Edge.
ListenOption

Jika Anda menggunakan ELB dalam mode pass-thru TCP untuk menangani permintaan ke Router Edge, Router akan memperlakukan alamat IP ELB sebagai IP klien, bukan IP klien sebenarnya. Jika Router memerlukan IP klien sebenarnya, aktifkan proxy_protocol pada ELB agar meneruskan IP klien dalam paket TCP. Di Router, Anda juga harus menetapkan <ListenOption> pada host virtual ke proxy_protocol. Karena ELB berada dalam mode TCP pass-thru, Anda biasanya menghentikan TLS di Router. Oleh karena itu, Anda biasanya hanya mengonfigurasi host virtual untuk menggunakan proxy_protocol saat Anda juga mengonfigurasinya untuk menggunakan TLS.

Nilai default untuk <ListenOption> adalah string kosong.

Contoh:

<ListenOptions>
  <ListenOption>proxy_protocol</ListenOption>
</ListenOptions>

Untuk membatalkan penetapan <ListenOption> nanti, perbarui host virtual dan hilangkan tag <ListenOptions> dari pembaruan.

SSLInfo
Diaktifkan

Mengaktifkan TLS/SSL satu arah. Anda harus sudah menentukan keystore yang berisi sertifikat dan kunci pribadi.

Untuk Cloud: Anda harus memiliki sertifikat yang ditandatangani oleh entitas tepercaya, seperti Symantec atau VeriSign. Anda tidak dapat menggunakan sertifikat yang ditandatangani sendiri, atau sertifikat leaf yang ditandatangani oleh CA yang ditandatangani sendiri.

Untuk Cloud: Jika host virtual yang ada dikonfigurasi untuk menggunakan port selain 443, Anda tidak dapat mengubah setelan TLS. Artinya, Anda tidak dapat mengubah setelan TLS dari diaktifkan menjadi dinonaktifkan, atau dari dinonaktifkan menjadi aktif.

false Tidak
ClientAuthEnabled Mengaktifkan TLS dua arah, atau klien, antara Edge (server) dan aplikasi (klien) yang membuat permintaan. Untuk mengaktifkan TLS dua arah, Anda harus menyiapkan truststore di Edge yang berisi sertifikat dari klien TLS. false Tidak
KeyStore

Nama keystore di Edge.

Apigee merekomendasikan agar Anda menggunakan referensi untuk menentukan nama keystore sehingga Anda dapat mengubah keystore tanpa harus memulai ulang Router. Lihat Opsi untuk mengonfigurasi TLS untuk informasi selengkapnya.

Tidak ada Ya jika Aktif disetel ke true
KeyAlias Alias yang ditentukan saat Anda mengupload sertifikat dan kunci pribadi ke keystore. Anda harus menentukan nama alias secara harfiah; Anda tidak dapat menggunakan referensi. Lihat Opsi untuk mengonfigurasi TLS untuk informasi selengkapnya. Tidak ada Ya jika Aktif disetel ke true
TrustStore

Nama truststore di Edge yang berisi sertifikat atau rantai sertifikat yang digunakan untuk TLS dua arah. Wajib jika <ClientAuthEnabled> bernilai benar (true).

Apigee merekomendasikan agar Anda menggunakan referensi untuk menentukan nama truststore sehingga Anda dapat mengubah truststore tanpa harus memulai ulang Router. Lihat Opsi untuk mengonfigurasi TLS untuk informasi selengkapnya.

Tidak ada Tidak
IgnoreValidationErrors

Jika true (benar), menentukan untuk mengabaikan error sertifikat TLS. Ini mirip dengan opsi "-k" untuk cURL.

Opsi ini berlaku saat mengonfigurasi TLS untuk Server Target dan Endpoint Target, serta saat mengonfigurasi host virtual yang menggunakan TLS 2 arah.

Saat digunakan dengan server target/endpoint target, jika sistem backend menggunakan SNI dan menampilkan sertifikat dengan subject Distinguished Name (DN) yang tidak cocok dengan nama host, error tersebut tidak dapat diabaikan dan koneksi akan gagal.

false Tidak
Penyandian

Khusus untuk Edge for Private Cloud versi 4.15.07 dan yang lebih lama.

Menentukan cipher yang didukung oleh host virtual. Jika tidak ada cipher yang ditentukan, semua cipher yang tersedia untuk JVM akan diizinkan.

Untuk membatasi cipher, tambahkan elemen berikut:

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
Semua didukung oleh JVM Tidak
Protokol

Khusus untuk Edge for Private Cloud versi 4.15.07 dan yang lebih lama.

Menentukan protokol yang didukung oleh host virtual. Jika tidak ada protokol yang ditentukan, semua protokol yang tersedia untuk JVM akan diizinkan.

Untuk membatasi protokol, tambahkan elemen berikut:

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
Semua didukung oleh JVM Tidak
UseBuiltInFreeTrialCert Hanya tersedia untuk Edge Cloud.
UseBuiltInFreeTrialCert

Jika Anda memiliki akun Edge untuk Cloud berbayar dan belum memiliki sertifikat dan kunci TLS, Anda dapat membuat host virtual yang menggunakan sertifikat dan kunci uji coba gratis Apigee. Artinya, Anda dapat membuat host virtual tanpa membuat keystore terlebih dahulu.

Sertifikat uji coba gratis Apigee ditentukan untuk domain *.apigee.net. Oleh karena itu, <HostAlias> host virtual juga harus dalam format *.apigee.net.

Lihat Menentukan host virtual yang menggunakan kunci dan sertifikat uji coba gratis Apigee.

false Tidak
PropagateTLSInformation Hanya tersedia dalam Alpha untuk Edge Cloud.
ConnectionProperties

Memungkinkan pengambilan informasi koneksi TLS oleh Edge. Informasi ini kemudian tersedia sebagai variabel alur di proxy API. Lihat Mengakses informasi koneksi TLS di proxy API untuk mengetahui informasi selengkapnya.

false Tidak
ClientProperties

Mengaktifkan pengambilan detail sertifikat klien yang diambil oleh Edge di TLS dua arah. Informasi ini kemudian tersedia sebagai variabel alur di proxy API. Lihat Mengakses informasi koneksi TLS di proxy API untuk mengetahui informasi selengkapnya.

false Tidak
Properti Tersedia untuk Edge Cloud serta untuk Private Cloud 4.17.01 dan yang lebih baru.
proxy_read_timeout

Menyetel durasi waktu tunggu, dalam detik, antara Prosesor Pesan dan Router. Router memutuskan koneksi dan menampilkan respons HTTP 504 jika tidak mendapatkan respons dari Pemroses Pesan sebelum durasi ini berakhir.

Nilai proxy_read_timeout harus lebih besar dari nilai waktu tunggu target yang digunakan oleh Pemroses Pesan. Hal ini memastikan bahwa Waktu tunggu Router tidak habis sebelum Prosesor Pesan sempat menampilkan respons. Waktu tunggu target default untuk Pemroses Pesan adalah 55 detik 55.000 milidetik, seperti yang ditetapkan oleh token conf_http_HTTPTransport.io.timeout.millis untuk Pemroses Pesan.

57 Tidak
keepalive_timeout

Menetapkan durasi waktu tunggu, dalam detik, antara klien dan Router saat klien membuat permintaan yang berisi header Keep-Alive. Router akan membiarkan koneksi tetap terbuka hingga durasinya berakhir.

Router tidak akan menutup koneksi jika sedang menunggu respons dari Pemroses Pesan. Waktu tunggu hanya dimulai setelah Router menampilkan respons ke klien.

65 Tidak
ssl_ciphers

Menetapkan cipher yang didukung oleh host virtual, menggantikan cipher default yang ditetapkan pada Router.

Tentukan daftar cipher yang dipisahkan titik dua, dalam bentuk:

<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property>

Untuk mengetahui informasi tentang sintaksis dan nilai yang diizinkan oleh token ini, lihat https://www.openssl.org/docs/man1.0.2/man1/ciphers.html. Perlu diperhatikan bahwa token ini menggunakan nama cipher OpenSSL, seperti AES128-SHA256, dan bukan nama cipher Java/JSSE, seperti TLS_RSA_WITH_AES_128_CBC_SHA256.

TINGGI:!aNULL:

MD5:

!DH+3DES:

!kEDH

Tidak
ssl_protocols

Hanya tersedia untuk Edge untuk Private Cloud.

Menetapkan protokol TLS yang didukung oleh host virtual, sebagai daftar yang dipisahkan spasi, menggantikan protokol default yang ditetapkan pada Router.

Catatan: Jika dua host virtual berbagi port yang sama, keduanya harus menetapkan ssl_protocols ke protokol yang sama. Artinya, host virtual yang berbagi port yang sama harus mendukung protokol yang sama persis.

Tentukan daftar protokol TLS yang dipisahkan spasi, dalam bentuk:

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2 Tidak
proxy_request_buffering

Mengaktifkan (aktif) atau menonaktifkan buffering (nonaktif) isi permintaan. Saat buffering aktif, Router akan mem-buffer seluruh isi permintaan sebelum mengirimkannya ke Pemroses Pesan. Jika terjadi error, Router dapat mencoba kembali Pemroses Pesan lain.

Jika nonaktif, buffering akan dinonaktifkan dan isi permintaan akan segera dikirim ke Pemroses Pesan setelah diterima. Jika terjadi error, Router tidak akan mencoba lagi permintaan tersebut ke Pemroses Pesan lain.

on Tidak
proxy_buffering Mengaktifkan (aktif) atau menonaktifkan (menonaktifkan) buffering respons. Saat buffering aktif, Router akan mem-buffer respons. Saat buffering nonaktif, respons akan diteruskan ke klien secara sinkron, segera setelah diterima oleh Router. on Tidak