Topik ini menjelaskan cara mengonfigurasi aturan pengalihan untuk Pendengar Application Load Balancer (ALB) berdasarkan nama domain dan path, serta cara mengonfigurasi aturan pengalihan berbasis path tingkat lanjut untuk menulis ulang dan mengalihkan (redirect).
Aturan pengalihan berbasis nama domain
Anda dapat menentukan nama domain eksak, nama domain wildcard, atau ekspresi reguler sebagai kondisi pencocokan dalam aturan pengalihan berbasis nama domain. Untuk informasi selengkapnya, lihat Buat aturan pengalihan.
ALB mencocokkan aturan pengalihan berdasarkan nomor prioritasnya. ALB tidak secara otomatis mengurutkan aturan berdasarkan spesifisitas nama domain. Jika suatu Pendengar memiliki aturan nama domain eksak dan aturan nama domain wildcard, Anda harus memberikan nomor prioritas yang lebih kecil pada aturan nama domain eksak agar aturan tersebut didahulukan dibandingkan aturan nama domain wildcard. Perilaku ini berbeda dari Classic Load Balancer (CLB), yang secara otomatis mengurutkan aturan berdasarkan urutan prioritas berikut: pencocokan eksak, wildcard sempit, dan wildcard luas.
Aturan Konfigurasi Nama Domain | Deskripsi |
Pencocokan eksak dan pencocokan wildcard |
|
Pencocokan ekspresi reguler |
|
Aturan pengalihan berbasis path
Anda dapat menentukan path eksak, path wildcard, atau ekspresi reguler sebagai kondisi pencocokan dalam aturan pengalihan berbasis path. Untuk informasi selengkapnya, lihat Buat aturan pengalihan.
Aturan Konfigurasi Path | Deskripsi |
Pencocokan eksak dan pencocokan wildcard |
|
Pencocokan ekspresi reguler |
|
Pengaturan aturan pengalihan berbasis path tingkat lanjut untuk menulis ulang dan mengalihkan
Jika Anda mengonfigurasi kondisi pengalihan berbasis path yang menggunakan ekspresi reguler, Anda dapat menggunakan penggantian ekspresi reguler dalam path untuk aksi menulis ulang atau mengalihkan. Untuk informasi selengkapnya, lihat Buat aturan pengalihan.
Untuk informasi selengkapnya tentang cara mengonfigurasi ekspresi reguler untuk kondisi pengalihan berbasis path, lihat Aturan pengalihan berbasis path.
Catatan penggunaan
Jumlah kelompok capture
( )dalam ekspresi reguler pada kondisi pengalihan harus sesuai dengan jumlah variabel dalam path penulisan ulang atau pengalihan.Path penulisan ulang atau pengalihan harus mencakup satu atau beberapa variabel berikut:
${1},${2}, atau${3}. Variabel ini tidak dapat diganti dengan karakter lain.
Cara kerja penggantian
Pencocokan path: Klien mengirim permintaan yang path-nya sesuai dengan ekspresi reguler dalam aturan pengalihan.
Ekstraksi dan penggantian: ALB mengekstrak konten dari tiga kelompok capture pertama
( )dalam ekspresi reguler dan menyimpan konten yang ditangkap sebagai variabel${1},${2}, dan${3}. Variabel ini kemudian digunakan dalam path penulisan ulang atau pengalihan.Konstruksi path: ALB mengganti variabel
${1},${2}, dan${3}dalam path penulisan ulang atau pengalihan dengan nilai yang sesuai untuk membangun path akhir.
No.
Langkah
Contoh
1
Konfigurasikan kondisi pengalihan dan aksi pengalihan dalam aturan pengalihan.
Path kondisi pengalihan:
/sys/(.*)/(.*)/aaaPath penulisan ulang atau pengalihan:
/${1}/${2}
2
Permintaan klien sesuai dengan path dalam aturan pengalihan.
Path yang diminta:
/sys/ccc/bbb/aaaPath kondisi pengalihan yang cocok:
/sys/(.*)/(.*)/aaa
3
Ekstraksi dan ganti
ALB mengekstrak
(.*)dari path kondisi pengalihan dan menyimpancccdanbbbdalam ${1} dan ${2} masing-masing.Ganti
${1}denganccc.Ganti
${2}denganbbb.
4
Gabungkan path
Path yang diterima oleh server backend adalah
/ccc/bbb.Contoh konfigurasi
Anda dapat menambahkan aturan pengalihan di Konsol sesuai panduan dan prinsip penggantian yang ditentukan.
Contoh 1: Aksi pengalihan: Rewrite dan Forward To
Dalam contoh ini, permintaan untuk path
/sys/ccc/bbb/aaaditulis ulang menjadi/ccc/bbblalu diteruskan. Gambar berikut menunjukkan contoh konfigurasi aturan pengalihan:
Kategori
Deskripsi
If Match All Conditions
Pencocokan ekspresi reguler
Kondisi pencocokan
Path yang diminta sesuai dengan ekspresi reguler yang ditentukan.
Persyaratan
Ekspresi reguler hanya boleh berisi huruf, angka, serta karakter khusus berikut:
.-_/=?~^*$:()[]+|.Contoh
Path yang diminta:
/sys/ccc/bbb/aaaEkspresi reguler case-sensitive: Permintaan cocok jika Anda menentukan
/sys/(.*)/(.*)/aaadalam aturan pengalihan.Case-insensitive: Ekspresi reguler cocok dengan input
/sys/(.*)/(.*)/aaa, dan path berhasil dicocokkan.
Forwarding Action
Rewrite
Domain Name:
${host}Path:
/${1}/${2}Search:
${query}
CatatanQuery adalah bagian URL yang mengikuti tanda tanya.
Contoh: URL-nya adalah
www.example.com/test/test1?x=1, dan Query-nya adalahx=1.Forward
Pada daftar kelompok server, pilih kelompok server yang ingin Anda kelola.
Contoh 2: Konfigurasikan aksi Redirect
Dalam contoh ini, aturan pengalihan mengarahkan permintaan untuk path
/sys/ccc/bbb/aaake/ccc/bbb. Gambar berikut menunjukkan konfigurasi contoh.
Kategori
Deskripsi
If Match All Conditions
Pencocokan ekspresi reguler
Kondisi pencocokan
Path yang diminta sesuai dengan ekspresi reguler yang ditentukan.
Persyaratan
Ekspresi reguler hanya boleh berisi huruf, angka, serta karakter khusus berikut:
.-_/=?~^*$:()[]+|.Contoh
Path yang diminta:
/sys/ccc/bbb/aaaEkspresi reguler case-sensitive: Permintaan cocok jika Anda menentukan
/sys/(.*)/(.*)/aaadalam aturan pengalihan.Case-insensitive: Pencocokan ekspresi reguler terhadap input
/sys/(.*)/(.*)/aaaberhasil mencocokkan path.
Forwarding Action
Redirect
Protocol:
$protocolDomain Name:
${host}Port:
${port}Path:
/${1}/${2}Search:
${query}Status Code:
301
FAQ
Bagaimana cara menulis ulang hanya nama domain tanpa mengubah path?
Untuk menulis ulang nama domain yang diminta ke nama domain berbeda tetapi mempertahankan path dan string query asli, konfigurasikan aturan pengalihan sebagai berikut:
Kondisi pengalihan: Atur Domain Name ke domain asli, misalnya
old.example.com.Aksi pengalihan: Pilih Rewrite. Atur Domain Name ke domain baru, misalnya
new.example.com. Atur Path ke${path}untuk mempertahankan path asli. Atur Query ke${query}untuk mempertahankan string query asli. Untuk pengaturan Forward, pilih server group target.
Bagaimana cara menambahkan awalan ke path?
Untuk menambahkan awalan seperti nomor versi ke path asli—misalnya, menulis ulang /users/list menjadi /v2/users/list—konfigurasikan aturan pengalihan sebagai berikut:
Kondisi pengalihan: Atur Path untuk menggunakan pencocokan ekspresi reguler dan masukkan
^/(.*).Aksi pengalihan: Pilih Rewrite dan atur Path ke
/v2/${1}. Untuk pengaturan Forward, pilih server group target.
Setelah Anda mengonfigurasi aturan tersebut, permintaan untuk /users/list akan ditulis ulang menjadi /v2/users/list sebelum diteruskan ke server backend.
Bagaimana cara mengonfigurasi aturan pengalihan di ALB untuk menghapus awalan path tertentu dan mendukung pencocokan path multi-level?
Untuk mengonfigurasi aturan pengalihan ALB yang menghapus awalan path tertentu dan mencocokkan semua subpath berikutnya, ikuti contoh berikut:
Contoh: Teruskan permintaan untuk www.example.com/api/aaa/bbb/..., hapus awalan /api, dan cocokkan semua subpath yang mengikuti /api.
Anda dapat menggunakan aksi Rewrite atau Redirect. Untuk kondisi path, gunakan ekspresi reguler ^/api/(.*) untuk mencocokkan semua path yang dimulai dengan /api. Kemudian, dalam aksi, atur path ke /${1} untuk menggunakan konten yang ditangkap dari path asli setelah /api. Berikut adalah contoh konfigurasi:
Rewrite

Redirect

Referensi
Untuk informasi selengkapnya tentang cara mengonfigurasi jenis aturan pengalihan lainnya untuk Pendengar ALB, lihat Konfigurasikan aturan pengalihan pendengar.