مشاركة عبر


التعليقات التوضيحية لوحدة تحكم الدخول لبوابة التطبيق

يمكنك إضافة تعليق توضيحي لمورد دخول Kubernetes مع أزواج مفاتيح/قيمة عشوائية. تعتمد وحدة تحكم دخول بوابة التطبيق (AGIC) على التعليقات التوضيحية لبرمجة ميزات بوابة تطبيق Azure غير القابلة للتكوين عبر YAML للدخول. يتم تطبيق التعليقات التوضيحية للدخول على جميع إعدادات HTTP وتجمعات الواجهة الخلفية والمستمعين المشتقة من مورد دخول.

تلميح

ضع في اعتبارك بوابة التطبيق للحاويات لحل دخول Kubernetes الخاص بك. لمزيد من المعلومات، راجع التشغيل السريع: نشر بوابة التطبيق لوحدة تحكم ALB للحاويات.

قائمة التعليقات التوضيحية المدعومة

لكي تلاحظ AGIC مورد دخول، يجب إضافة تعليق توضيحي للمورد باستخدام kubernetes.io/ingress.class: azure/application-gateway.

مفتاح التعليق التوضيحي نوع القيمة القيمة الافتراضية القيم المسموح بها
appgw.ingress.kubernetes.io/backend-path-prefix string nil
appgw.ingress.kubernetes.io/backend-hostname string nil
appgw.ingress.kubernetes.io/health-probe-hostname string 127.0.0.1
appgw.ingress.kubernetes.io/health-probe-port int32 80
appgw.ingress.kubernetes.io/health-probe-path string /
appgw.ingress.kubernetes.io/health-probe-status-codes string 200-399
appgw.ingress.kubernetes.io/health-probe-interval int32 30(ثوانٍ)
appgw.ingress.kubernetes.io/health-probe-timeout int32 30(ثوانٍ)
appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold int32 3
appgw.ingress.kubernetes.io/ssl-redirect bool false
appgw.ingress.kubernetes.io/connection-draining bool false
appgw.ingress.kubernetes.io/connection-draining-timeout int32(ثوانٍ) 30
appgw.ingress.kubernetes.io/use-private-ip bool false
appgw.ingress.kubernetes.io/override-frontend-port bool false
appgw.ingress.kubernetes.io/cookie-based-affinity bool false
[appgw.ingress.kubernetes.io/request-timeout]
(مهلة #request) int32(ثوانٍ) 30
appgw.ingress.kubernetes.io/use-private-ip bool false
appgw.ingress.kubernetes.io/backend-protocol string http http، https
appgw.ingress.kubernetes.io/hostname-extension string nil
appgw.ingress.kubernetes.io/waf-policy-for-path string nil
appgw.ingress.kubernetes.io/appgw-ssl-certificate string nil
appgw.ingress.kubernetes.io/appgw-ssl-profile string nil
appgw.ingress.kubernetes.io/appgw-trusted-root-certificate string nil
appgw.ingress.kubernetes.io/rewrite-rule-set string nil
appgw.ingress.kubernetes.io/rewrite-rule-set-custom-resource
appgw.ingress.kubernetes.io/rule-priority int32 nil

بادئة المسار الخلفي

يسمح التعليق التوضيحي التالي بإعادة كتابة مسار الواجهة الخلفية المحدد في مورد دخول بالبادئة المحددة. استخدمه لعرض الخدمات التي تختلف نقاط النهاية الخاصة بها عن أسماء نقاط النهاية التي تستخدمها لعرض خدمة في مورد دخول.

الاستخدام

appgw.ingress.kubernetes.io/backend-path-prefix: <path prefix>

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-bkprefix
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-path-prefix: "/test/"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

يعرف المثال السابق مورد دخول يسمى go-server-ingress-bkprefix بتعليف توضيحي يسمى appgw.ingress.kubernetes.io/backend-path-prefix: "/test/". يخبر التعليق التوضيحي بوابة التطبيق بإنشاء إعداد HTTP يحتوي على تجاوز بادئة مسار للمسار /hello إلى /test/.

يعرف المثال قاعدة واحدة فقط. ومع ذلك، تنطبق التعليقات التوضيحية على مورد الدخول بأكمله. لذلك إذا قمت بتعريف قواعد متعددة، يمكنك إعداد بادئة مسار الخلفية لكل مسار من المسارات المحددة. إذا كنت تريد قواعد مختلفة مع بادئات مسار مختلفة (حتى لنفس الخدمة)، تحتاج إلى تحديد موارد دخول مختلفة.

اسم مضيف الواجهة الخلفية

استخدم التعليق التوضيحي التالي لتحديد اسم المضيف الذي يجب أن تستخدمه بوابة التطبيق أثناء التحدث إلى pods.

الاستخدام

appgw.ingress.kubernetes.io/backend-hostname: "internal.example.com"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-timeout
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-hostname: "internal.example.com"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        backend:
          service:
            name: store-service
            port:
              number: 80
        pathType: Exact

فحص السلامة المخصص

يمكنك تكوين Application Gateway لإرسال فحص صحة مخصص إلى تجمع عناوين الواجهة الخلفية. عند وجود التعليقات التوضيحية التالية، تنشئ وحدة تحكم دخول Kubernetes مسبارا مخصصا لمراقبة تطبيق الواجهة الخلفية. ثم تطبق وحدة التحكم التغييرات على بوابة التطبيق.

  • health-probe-hostname: يسمح هذا التعليق التوضيحي باسم مضيف مخصص على التحقيق الصحي.
  • health-probe-port: يقوم هذا التعليق التوضيحي بتكوين منفذ مخصص لفحص السلامة.
  • health-probe-path: يحدد هذا التعليق التوضيحي مسار فحص السلامة.
  • health-probe-status-codes: يسمح هذا التعليق التوضيحي لفحص الصحة بقبول رموز حالة HTTP المختلفة.
  • health-probe-interval: يحدد هذا التعليق التوضيحي الفاصل الزمني الذي يتم فيه تشغيل فحص السلامة.
  • health-probe-timeout: يحدد هذا التعليق التوضيحي المدة التي ينتظر فيها مسبار السلامة استجابة قبل فشل الفحص.
  • health-probe-unhealthy-threshold: يحدد هذا التعليق التوضيحي عدد فحوصات السلامة التي يجب أن تفشل حتى يتم وضع علامة غير سليم على الواجهة الخلفية.

الاستخدام

appgw.ingress.kubernetes.io/health-probe-hostname: "contoso.com"
appgw.ingress.kubernetes.io/health-probe-port: 80
appgw.ingress.kubernetes.io/health-probe-path: "/"
appgw.ingress.kubernetes.io/health-probe-status-codes: "100-599"
appgw.ingress.kubernetes.io/health-probe-interval: 30
appgw.ingress.kubernetes.io/health-probe-timeout: 30
appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold: 2

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/health-probe-hostname: "contoso.com"
    appgw.ingress.kubernetes.io/health-probe-port: 81
    appgw.ingress.kubernetes.io/health-probe-path: "/probepath"
    appgw.ingress.kubernetes.io/health-probe-status-codes: "100-599"
    appgw.ingress.kubernetes.io/health-probe-interval: 31
    appgw.ingress.kubernetes.io/health-probe-timeout: 31
    appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold: 2
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

TLS إعادة توجيه

يمكنك تكوين بوابة التطبيق لإعادة توجيه عناوين URL HTTP تلقائيا إلى نظرائهم HTTPS. عند وجود هذا التعليق التوضيحي وتكوين TLS بشكل صحيح، تنشئ وحدة تحكم دخول Kubernetes قاعدة توجيه مع تكوين إعادة توجيه. ثم تطبق وحدة التحكم التغييرات على مثيل Application Gateway. إعادة التوجيه التي تم إنشاؤها هي HTTP 301 Moved Permanently.

الاستخدام

appgw.ingress.kubernetes.io/ssl-redirect: "true"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-redirect
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
   - hosts:
     - www.contoso.com
     secretName: testsecret-tls
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

استنزاف الاتصال

استخدم التعليقات التوضيحية التالية إذا كنت تريد استخدام استنزاف الاتصال:

  • connection-draining: يحدد هذا التعليق التوضيحي ما إذا كان يجب تمكين استنزاف الاتصال.
  • connection-draining-timeout: يحدد هذا التعليق التوضيحي مهلة، وبعد ذلك تنهي بوابة التطبيق الطلبات إلى نقطة نهاية الواجهة الخلفية المستنفدة.

الاستخدام

appgw.ingress.kubernetes.io/connection-draining: "true"
appgw.ingress.kubernetes.io/connection-draining-timeout: "60"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-drain
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/connection-draining: "true"
    appgw.ingress.kubernetes.io/connection-draining-timeout: "60"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

استخدم التعليق التوضيحي التالي لتمكين الترابط المستند إلى ملف تعريف الارتباط.

الاستخدام

appgw.ingress.kubernetes.io/cookie-based-affinity: "true"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-affinity
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/cookie-based-affinity: "true"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

مهلة الطلب

استخدم التعليق التوضيحي التالي لتحديد مهلة الطلب بالثوان. بعد انتهاء المهلة، تفشل بوابة التطبيق في طلب إذا لم يتم تلقي الاستجابة.

الاستخدام

appgw.ingress.kubernetes.io/request-timeout: "20"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-timeout
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/request-timeout: "20"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

استخدام IP خاص

استخدم التعليق التوضيحي التالي لتحديد ما إذا كنت تريد عرض نقطة النهاية هذه على عنوان IP خاص لبوابة التطبيق.

بالنسبة لمثيل Application Gateway الذي لا يحتوي على عنوان IP خاص، يتم تجاهل الدخول باستخدام appgw.ingress.kubernetes.io/use-private-ip: "true" . تظهر سجلات وحدة التحكم وأحداث الدخول لتلك الدخول تحذيرا NoPrivateIP .

الاستخدام

appgw.ingress.kubernetes.io/use-private-ip: "true"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-privateip
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/use-private-ip: "true"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

تجاوز منفذ الواجهة الأمامية

استخدم التعليق التوضيحي التالي لتكوين وحدة استماع أمامية لاستخدام منافذ أخرى غير 80 ل HTTP و443 ل HTTPS.

إذا كان المنفذ ضمن النطاق المعتمد لبوابة التطبيق (من 1 إلى 64999)، يتم إنشاء وحدة الاستماع على هذا المنفذ المحدد. إذا قمت بتعيين منفذ غير صالح أو لا يوجد منفذ في التعليق التوضيحي، يستخدم التكوين الافتراضي 80 أو 443.

الاستخدام

appgw.ingress.kubernetes.io/override-frontend-port: "port"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-overridefrontendport
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/override-frontend-port: "8080"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        backend:
          service:
            name: store-service
            port:
              number: 80
        pathType: Exact

إشعار

تحتاج الطلبات الخارجية إلى الهدف http://somehost:8080 بدلا من http://somehost.

بروتوكول الواجهة الخلفية

استخدم ما يلي لتحديد البروتوكول الذي يجب أن تستخدمه بوابة التطبيق عند اتصالها بوحدات الجراب. البروتوكولات المدعومة هي HTTP وHTTPS.

على الرغم من أن الشهادات الموقعة ذاتيا مدعومة على Application Gateway، فإن AGIC تدعم حاليا HTTPS فقط عندما تستخدم pods شهادة موقعة من قبل مرجع مصدق معروف.

لا تستخدم المنفذ 80 مع HTTPS والمنفذ 443 مع HTTP على pods.

الاستخدام

appgw.ingress.kubernetes.io/backend-protocol: "https"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-timeout
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-protocol: "https"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 443

ملحق اسم المضيف

يمكنك تكوين بوابة التطبيق لقبول أسماء مضيفين متعددة. استخدم التعليق التوضيحي hostname-extension لتعريف أسماء مضيفين متعددة، بما في ذلك أسماء مضيفي أحرف البدل. يقوم هذا الإجراء بإلحاق أسماء المضيفين ب FQDN المحدد في معلومات الدخول spec.rules.host على وحدة الاستماع الأمامية، لذلك يتم تكوينه كمستمع متعدد المواقع.

الاستخدام

appgw.ingress.kubernetes.io/hostname-extension: "hostname1, hostname2"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-multisite
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/hostname-extension: "hostname1, hostname2"
spec:
  rules:
  - host: contoso.com
    http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 443

يقوم المثال السابق بتكوين وحدة الاستماع لقبول نسبة استخدام الشبكة لأسماء المضيفين hostname1.contoso.com و hostname2.contoso.com.

نهج WAF للمسار

استخدم التعليق التوضيحي التالي لإرفاق نهج جدار حماية تطبيق ويب (WAF) موجود بمسارات القائمة لمضيف داخل مورد دخول Kubernetes الذي يتم التعليق عليه. يتم تطبيق نهج WAF على كل من /ad-server وعناوين /auth URL.

الاستخدام

appgw.ingress.kubernetes.io/waf-policy-for-path: "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SampleRG/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/AGICWAFPolcy"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ad-server-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/waf-policy-for-path: "/subscriptions/abcd/resourceGroups/rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/adserver"
spec:
  rules:
  - http:
      paths:
      - path: /ad-server
        backend:
          service:
            name: ad-server
            port:
              number: 80
        pathType: Exact
      - path: /auth
        backend:
          service:
            name: auth-server
            port:
              number: 80
        pathType: Exact

شهادة SSL لبوابة التطبيق

يمكنك تكوين شهادة SSL إلى Application Gateway إما من ملف شهادة PFX محلي أو مرجع إلى معرف سري غير منفر ل Azure Key Vault. عندما يكون التعليق التوضيحي موجودا باسم شهادة ويتم تثبيت الشهادة مسبقا في بوابة التطبيق، تقوم وحدة تحكم دخول Kubernetes بإنشاء قاعدة توجيه مع مستمع HTTPS وتطبيق التغييرات على مثيل Application Gateway. يمكنك أيضا استخدام التعليق التوضيحي appgw-ssl-certificate مع ssl-redirect تعليق توضيحي في حالة إعادة توجيه SSL.

إشعار

appgw-ssl-certificate يتم تجاهل التعليق التوضيحي عند تعريف مواصفات TLS في الدخول في نفس الوقت. إذا كنت تريد شهادات مختلفة مع مضيفين مختلفين (إنهاء شهادات TLS متعددة)، تحتاج إلى تحديد موارد دخول مختلفة.

الاستخدام

appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

ملف تعريف SSL لبوابة التطبيق

يمكنك تكوين ملف تعريف SSL على مثيل Application Gateway لكل وحدة استماع. عندما يكون التعليق التوضيحي موجودا باسم ملف تعريف ويتم تثبيت ملف التعريف مسبقا في Application Gateway، تنشئ وحدة تحكم دخول Kubernetes قاعدة توجيه مع وحدة استماع HTTPS وتطبق التغييرات على مثيل Application Gateway.

الاستخدام

appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
appgw.ingress.kubernetes.io/appgw-ssl-profile: "SampleSSLProfile"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
    appgw.ingress.kubernetes.io/appgw-ssl-profile: "SampleSSLProfile"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

شهادة الجذر الموثوق بها لبوابة التطبيق

يمكنك الآن تكوين شهادات الجذر الخاصة بك إلى Application Gateway ليتم الوثوق بها عبر AGIC. يمكنك استخدام التعليق التوضيحي appgw-trusted-root-certificate مع التعليق التوضيحي backend-protocol للإشارة إلى تشفير SSL من طرف إلى طرف. إذا قمت بتحديد شهادات جذر متعددة، فافصلها بفاسمة؛ على سبيل المثال، name-of-my-root-cert1,name-of-my-root-cert2.

الاستخدام

appgw.ingress.kubernetes.io/backend-protocol: "https"
appgw.ingress.kubernetes.io/appgw-trusted-root-certificate: "name-of-my-root-cert1"

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-protocol: "https"
    appgw.ingress.kubernetes.io/appgw-trusted-root-certificate: "name-of-my-root-cert1"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

إعادة كتابة مجموعة القواعد

استخدم التعليق التوضيحي التالي لتعيين قاعدة إعادة كتابة موجودة تم تعيينها إلى قاعدة توجيه الطلب المقابلة.

الاستخدام

appgw.ingress.kubernetes.io/rewrite-rule-set: <rewrite rule set name>

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-bkprefix
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/rewrite-rule-set: add-custom-response-header
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 8080

إعادة كتابة مورد مخصص لمجموعة القواعد

إشعار

يقدم إصدار Application Gateway for Containers العديد من تغييرات الأداء والمرونة والميزات. ضع في اعتبارك استخدام بوابة التطبيق للحاويات للنشر التالي.

يمكنك العثور على قواعد إعادة كتابة عنوان URL لبوابة التطبيق للحاويات في هذه المقالة حول واجهة برمجة تطبيقات البوابة وهذه المقالة حول واجهة برمجة تطبيقات الدخول. يمكنك العثور على قواعد إعادة كتابة العنوان لبوابة التطبيق للحاويات في هذه المقالة حول واجهة برمجة تطبيقات البوابة.

تسمح لك بوابة التطبيق بإعادة كتابة محتويات محددة من الطلبات والاستجابات. باستخدام هذه الميزة، يمكنك ترجمة عناوين URL وتغيير معلمات سلسلة الاستعلام وتعديل عناوين الطلب والاستجابة. يمكنك أيضا استخدام هذه الميزة لإضافة شروط للتأكد من إعادة كتابة عنوان URL أو العناوين المحددة فقط عند استيفاء شروط معينة. إعادة كتابة مجموعة القواعد المورد المخصص يجلب هذه الميزة إلى AGIC.

تتيح عناوين HTTP للعميل والخادم تمرير معلومات إضافية مع طلب أو استجابة. من خلال إعادة كتابة هذه الرؤوس، يمكنك إنجاز مهام مهمة مثل إضافة حقول عناوين متعلقة بالأمان (على سبيل المثال، HSTS أو X-XSS-Protection)، وإزالة حقول رأس الاستجابة التي قد تكشف عن معلومات حساسة، وإزالة معلومات المنفذ من X-Forwarded-For الرؤوس.

باستخدام إمكانية إعادة كتابة عنوان URL، يمكنك:

  • أعد كتابة اسم المضيف والمسار وسلسلة الاستعلام الخاصة بعنوان URL للطلب.
  • اختر إعادة كتابة عنوان URL لجميع الطلبات أو الطلبات التي تطابق شرطا واحدا أو أكثر من الشروط التي قمت بتعيينها. تستند هذه الشروط إلى خصائص الطلب والاستجابة (عنوان الطلب ورأس الاستجابة ومتغيرات الخادم).
  • اختر توجيه الطلب استنادا إلى عنوان URL الأصلي أو عنوان URL المعاد كتابته.

إشعار

هذه الميزة مدعومة منذ 1.6.0-rc1. استخدم appgw.ingress.kubernetes.io/rewrite-rule-set، والذي يسمح باستخدام مجموعة قواعد إعادة كتابة موجودة على Application Gateway.

الاستخدام

appgw.ingress.kubernetes.io/rewrite-rule-set-custom-resource

مثال

apiVersion: appgw.ingress.azure.io/v1beta1 
kind: AzureApplicationGatewayRewrite 
metadata: 
  name: my-rewrite-rule-set-custom-resource 
spec: 
  rewriteRules: 
  - name: rule1 
    ruleSequence: 21
    conditions:
  - ignoreCase: false
    negate: false
    variable: http_req_Host
    pattern: example.com
  actions:
    requestHeaderConfigurations:
    - actionType: set
      headerName: incoming-test-header
      headerValue: incoming-test-value
    responseHeaderConfigurations:
    - actionType: set
      headerName: outgoing-test-header
      headerValue: outgoing-test-value
    urlConfiguration:
      modifiedPath: "/api/"
      modifiedQueryString: "query=test-value"
      reroute: false

أولوية القاعدة

يسمح التعليق التوضيحي التالي لوحدة تحكم دخول بوابة التطبيق بتعيين أولوية قواعد توجيه الطلب المقترنة بشكل صريح.

الاستخدام

appgw.ingress.kubernetes.io/rule-priority:

مثال

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-rulepriority
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/rule-priority: 10
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 8080

يعين المثال السابق أولوية 10 لقاعدة توجيه الطلب.

الخطوات التالية