Gambaran umum Perutean Berbasis Jalur URL

Perutean Berbasis Jalur URL memungkinkan Anda merutekan lalu lintas ke kumpulan server backend berdasarkan Jalur URL permintaan.

Salah satu skenarionya adalah merutekan permintaan untuk berbagai jenis konten ke kumpulan ujung yang berbeda.

Dalam contoh berikut, Application Gateway melayani lalu lintas untuk contoso.com dari tiga kumpulan server backend misalnya: VideoServerPool, ImageServerPool, dan DefaultServerPool.

imageURLroute

Permintaan untuk http://contoso.com/video/* dirutekan ke VideoServerPool, dan http://contoso.com/images/* dirutekan ke ImageServerPool. DefaultServerPool dipilih jika tidak ada pola jalur yang cocok.

Penting

Untuk SKU v1 dan v2, aturan diproses sesuai urutan yang tercantum di portal. Praktik terbaik saat Anda membuat aturan jalur adalah memiliki jalur yang paling tidak spesifik (yang memiliki kartubebas) di akhir. Jika kartubebas berada di bagian atas, maka mereka lebih diprioritaskan meskipun ada kecocokan yang lebih spesifik dalam aturan jalur berikutnya.

Jika pendengar dasar dicantumkan terlebih dahulu dan cocok dengan permintaan masuk, maka akan diproses oleh pendengar tersebut. Namun, sangat disarankan untuk mengonfigurasi pendengar multi-situs terlebih dahulu sebelum mengonfigurasi pendengar dasar. Tindakan ini memastikan lalu lintas sudah dialihkan ke ujung belakang dengan benar.

Elemen konfigurasi urlPathMap

Elemen urlPathMap digunakan untuk menentukan pola Jalur ke pemetaan kumpulan server backend. Contoh kode berikut adalah cuplikan elemen urlPathMap dari file templat.

"urlPathMaps": [{
    "name": "{urlpathMapName}",
    "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}",
    "properties": {
        "defaultBackendAddressPool": {
            "id": "/subscriptions/    {subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName1}"
        },
        "defaultBackendHttpSettings": {
            "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpSettingsCollection/{settingname1}"
        },
        "pathRules": [{
            "name": "{pathRuleName}",
            "properties": {
                "paths": [
                    "{pathPattern}"
                ],
                "backendAddressPool": {
                    "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName2}"
                },
                "backendHttpsettings": {
                    "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpSettingsCollection/{settingName2}"
                }
            }
        }]
    }
}]

PathPattern

PathPattern adalah daftar pola jalur yang cocok. Setiap jalur harus dimulai dengan / dan dapat menggunakan * sebagai karakter kartubebas. String yang disalurkan ke pencocok jalur tidak menyertakan teks apa pun setelah karakter pertama ? atau #, dan karakter tersebut tidak diizinkan di sini. Karakter apa pun yang diizinkan di URL juga diperbolehkan di PathPattern.

Aturan jalur tidak peka huruf besar-kecil.

Pola Jalur Apakah didukung?
/images/* yes
/images* yes
/images/*.jpg no
/*.jpg no
/Repos/*/Comments/* no
/CurrentUser/Comments/* yes

Aturan jalur diproses secara berurutan, berdasarkan bagaimana aturan tersebut tercantum di portal. Jalur yang paling tidak spesifik (dengan kartubebas) harus berada di akhir daftar, sehingga akan diproses terakhir. Jika aturan kartubebas ada di bagian atas daftar, aturan tersebut akan diprioritaskan dan akan diproses terlebih dahulu. Lihat contoh skenario berikut.

Contoh

Pemrosesan aturan berbasis jalur saat kartubebas (*) digunakan:

Contoh 1:

/master-dev* to contoso.com

/master-dev/api-core/ to fabrikam.com

/master-dev/* to microsoft.com

Karena jalur /master-dev* kartubebas ada di atas jalur yang lebih terperinci, semua permintaan klien yang berisi dirutekan /master-dev ke contoso.com, termasuk yang spesifik /master-dev/api-core/. Untuk memastikan bahwa permintaan klien dirutekan ke jalur yang sesuai, sangat penting untuk memiliki jalur terperinci di atas jalur wildcard.

Contoh 2:

/ (default) to contoso.com

/master-dev/api-core/ to fabrikam.com

/master-dev/api to bing.com

/master-dev/* to microsoft.com

Semua permintaan klien dengan pola /master-dev/* jalur diproses dalam urutan seperti yang tercantum. Jika tidak ada kecocokan dalam aturan jalur, permintaan dirutekan ke target default.

Untuk informasi selengkapnya, lihat Templat Resource Manager menggunakan perutean berbasis URL.

Aturan PathBasedRouting

RequestRoutingRule tipe PathBasedRouting digunakan untuk mengikat listener ke urlPathMap. Semua permintaan yang diterima untuk listener ini dirutekan berdasarkan kebijakan yang ditentukan di dalam urlPathMap. Cuplikan aturan PathBasedRouting:

"requestRoutingRules": [
    {

"name": "{ruleName}",
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/requestRoutingRules/{ruleName}",
"properties": {
    "ruleType": "PathBasedRouting",
    "httpListener": {
        "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/httpListeners/<listenerName>"
    },
    "urlPathMap": {
        "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}"
    }

}
    }
]

Langkah berikutnya

Setelah mempelajari tentang perutean konten berbasis URL, buka membuat gateway aplikasi menggunakan perutean berbasis URL untuk membuat gateway aplikasi dengan aturan perutean URL.