نظرة عامة حول التوجيه المستند إلى مسار URL
يسمح لك التوجيه المستند إلى مسار URL بتوجيه نسبة استخدام الشبكة إلى تجمعات خوادم الواجهة الخلفية استنادا إلى مسارات عنوان URL للطلب.
يتمثل أحد السيناريوهات في توجيه طلبات أنواع المحتوى المختلفة إلى مزارع خوادم خلفية مختلفة.
في المثال التالي، تخدم Application Gateway نسبة استخدام الشبكة contoso.com من ثلاثة تجمعات خوادم خلفية على سبيل المثال: VideoServerPool وImageServerPool و DefaultServerPool.
يتم توجيه طلبات http://contoso.com/video/* إلى VideoServerPool، ويتم http://contoso.com/images/توجيه * إلى ImageServerPool. ويتم تحديد DefaultServerPool إذا لم تتطابق أي من أنماط المسار.
إشعار
عند توجيه الطلب، يتم إرسال مسار URL الكامل إلى تجمع الواجهة الخلفية. إذا كانت الموارد المطلوبة على مسار مختلف (على سبيل المثال، إذا كان طلب http://contoso.com/video/* يتطلب تقديم مقاطع فيديو من جذر الموقع خلف VideoServerPool) فستحتاج أيضا إلى تكوين قاعدة إعادة كتابة عنوان URL أو تجاوز مسار الواجهة الخلفية في إعدادات الواجهة الخلفية.
هام
لكل من وحدات V1 وV2 SKU، تتم معالجة القواعد بالترتيب الذي يتم سردها به في المدخل. أفضل ممارسة عند إنشاء قواعد المسار هي أن يكون لديك المسار الأقل تحديدا (تلك التي تحتوي على أحرف بدل) في النهاية. إذا كانت أحرف البدل في الأعلى، فإنها تأخذ الأولوية حتى إذا كان هناك تطابق أكثر تحديدا في قواعد المسار اللاحقة.
إذا تم سرد وحدة استماع أساسية أولًا وكانت تطابق طلب وارد، فتتم معالجته بواسطة وحدة الاستماع تلك. ومع ذلك، يوصى بشدة بتكوين وحدات الاستماع متعددة المواقع أولا قبل تكوين وحدة استماع أساسية. وهذا يضمن أن يتم توجيه نسبة استخدام الشبكة إلى الطرف الخلفي الصحيح.
عنصر تكوين UrlPathMap
يتم استخدام عنصر urlPathMap لتحديد أنماط المسار لتعيينات تجمع الخادم الخلفي. مثال التعليمات البرمجية التالي هو قصاصة برمجية لعنصر urlPathMap من ملف قالب.
"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 هي قائمة بأنماط المسار المراد مطابقتها. يجب أن يبدأ كل مسار ب / وقد يستخدم * كحرف بدل. لا تتضمن السلسلة التي يتم تغذيتها بمطابق المسار أي نص بعد الأول ?
أو #
، ولا يسمح بهذه الأحرف هنا. بخلاف ذلك، يُسمح بأي أحرف مسموح بها في عنوان URL في PathPattern.
قواعد المسار غير حساسة لحالة الأحرف.
نمط المسار | هل هو مدعوم؟ |
---|---|
/images/* |
yes |
/images* |
yes |
/images/*.jpg |
no |
/*.jpg |
no |
/Repos/*/Comments/* |
no |
/CurrentUser/Comments/* |
yes |
تتم معالجة قواعد المسار بالترتيب، استنادا إلى كيفية إدراجها في المدخل. يجب أن يكون المسار الأقل تحديدا (مع أحرف البدل) في نهاية القائمة، بحيث تتم معالجته أخيرا. إذا كانت قواعد أحرف البدل موجودة في أعلى القائمة، فإنها تأخذ الأولوية وستتم معالجتها أولا. راجع أمثلة السيناريوهات التالية.
الأمثلة
معالجة القواعد المستندة إلى المسار عند استخدام حرف البدل (*):
المثال 1:
/master-dev* to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/* to microsoft.com
نظرا لوجود مسار /master-dev*
حرف البدل فوق مسارات أكثر دقة، يتم توجيه جميع طلبات العميل التي /master-dev
تحتوي على إلى contoso.com، بما في ذلك المحدد /master-dev/api-core/
. للتأكد من توجيه طلبات العميل إلى المسارات المناسبة، من الضروري أن يكون لديك مسارات دقيقة فوق مسارات أحرف البدل.
المثال 2:
/ (default) to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/api to bing.com
/master-dev/* to microsoft.com
تتم معالجة جميع طلبات العميل مع نمط /master-dev/*
المسار بالترتيب كما هو مدرج. إذا لم يكن هناك تطابق داخل قواعد المسار، يتم توجيه الطلب إلى الهدف الافتراضي.
لمزيد من المعلومات، راجع قالب Resource Manager باستخدام التوجيه المستند إلى عنوان URL.
قاعدة PathBasedRouting
RequestRoutingRule من نوع PathBasedRouting يُستخدم لربط وحدة استماع إلى urlPathMap. تُوجه جميع الطلبات المتلقاة لوحدة الاستماع بناءً على النهج المحدد في urlPathMap. قصاصة برمجية لقاعدة 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}"
}
}
}
]
الخطوات التالية
بعد التعرف على توجيه المحتوى المستند إلى عنوان URL، انتقل إلى إنشاء بوابة تطبيقات باستخدام التوجيه المستند إلى عنوان URL لإنشاء بوابة تطبيقات بقواعد توجيه URL.