Pengenalan #
Artikel ini menerangkan cara memindahkan iRule F5 BIG-IP yang menghalakan berbilang URI aplikasi ke kolam backend yang sama ke dalam RELIANOID menggunakan padanan perkhidmatan ladang HTTP/S asli dan corak URI ungkapan biasa (regex).
iRule asal menilai URI masuk dan menghantar trafik yang sepadan dengan beberapa laluan aplikasi ke kolam backend yang sama.
F5 iRule Asal #
apabila HTTP_REQUEST { suis -glob [rentetan tolower [HTTP::uri]] { "/firstapp*" { kolam "MY_POOL" } "/secondapp*" { kolam "MY_POOL" } "/thirdapp" { kolam "MY_POOL" } } }
Matlamat Migrasi #
Tujuan konfigurasi ini ialah:
- Padankan berbilang laluan aplikasi
- Halakan semua trafik yang sepadan ke kolam backend yang sama
- Permudahkan logik penghalaan aplikasi
RELIANOID Pendekatan Migrasi #
In RELIANOID, ini boleh dicapai tanpa skrip dengan menggunakan:
- Satu perkhidmatan HTTP/S tunggal
- Pemadanan corak URI
- Ungkapan biasa (regex)
- Konfigurasi bahagian belakang yang dikongsi
Pendekatan ini lebih mudah, bersih dan senang diselenggara berbanding berbilang iRule bersyarat.
RELIANOID konfigurasi #
Navigasi ke Ladang > Ladang HTTP/S > Perkhidmatan dan Buat perkhidmatan baharu.
Konfigurasi Padanan URI #
Dalam corak URL, gunakan regex:
^/(firstapp|secondapp|thirdapp)
Konfigurasi hujung belakang #
Tambahkan konfigurasi senarai backend dalam service.
Mengapa Pendekatan Ini Disyorkan #
Menggunakan perkhidmatan berasaskan regex tunggal menyediakan:
- Konfigurasi yang lebih bersih
- Penyelenggaraan lebih mudah
- Bilangan perkhidmatan dikurangkan
- Skalabiliti yang lebih baik
- Penyelesaian masalah yang dipermudahkan
Daripada mengurus berbilang keadaan iRule, logik URI dipusatkan dalam satu peraturan yang sepadan.
Pengesahan #
Uji dengan CURL. Contoh:
curl -k https://example.com/firstapp -v
atau:
curl -k https://example.com/secondapp/api/test -v
Hasil yang diharapkan:
- Permintaan dimajukan ke himpunan bahagian belakang yang dikonfigurasikan
- Aplikasi bertindak balas seperti biasa
Penyelesaian masalah #
Permintaan Tidak Sepadan #
Sahkan:
- Mod regex diaktifkan
- Corak URI adalah betul
- Tiada ruang tersembunyi atau sintaks regex yang tidak sah
Hanya Sesetengah Aplikasi Berfungsi #
Semak:
- Regex merangkumi semua nama aplikasi yang diperlukan
- Tingkah laku permodalan URI
RELIANOID Padanan regex adalah sensitif huruf besar/kecil melainkan dikonfigurasikan sebaliknya.
Jika padanan huruf besar/kecil tidak sensitif diperlukan, gunakan:
(?i)^/(firstapp|secondapp|thirdapp)
Trafik Dihantar ke Perkhidmatan Lalai #
Ini biasanya menunjukkan:
- Ketidakpadanan regex
- Isu pesanan perkhidmatan
- Perbezaan normalisasi URI
Pendekatan Alternatif #
Walaupun berbilang perkhidmatan juga boleh dicipta, ini biasanya tidak digalakkan apabila:
- Semua aplikasi berkongsi kumpulan backend yang sama
- Logik penghalaan adalah sama
Perkhidmatan berasaskan regex tunggal adalah lebih cekap.
Amalan Terbaik #
- Kumpulkan aplikasi yang serupa ke dalam perkhidmatan kongsi apabila boleh
- Gunakan regex dengan berhati-hati untuk mengelakkan padanan yang tidak diingini
- Pastikan logik pemadanan URI berpusat
- Dokumenkan peraturan regex untuk keterlihatan operasi
Ringkasan #
F5 iRules yang melaksanakan pemilihan himpunan berasaskan URI boleh dipindahkan ke RELIANOID menggunakan padanan perkhidmatan HTTP/S asli dengan corak regex.
Pendekatan ini memudahkan konfigurasi sambil mengekalkan tingkah laku penghalaan aplikasi yang setara.