نشر ملفات الويب الثابتة

إشعار

يعد Azure Spring Apps هو الاسم الجديد لخدمة Azure Spring Cloud. رغم أن الخدمة تحمل اسماً جديداً، سترى الاسم القديم في بعض الأماكن لفترة من الوقت بينما نعمل على تحديث الأصول مثل لقطات الشاشة، ومقاطع الفيديو، والرسوم التخطيطية.

تنطبق هذه المقالة على:❌ Basic/Standard ✔️ Enterprise

توضح هذه المقالة كيفية نشر ملفاتك الثابتة إلى مثيل خطة Azure Spring Apps Enterprise باستخدام حزمة إنشاء خوادم ويب Tanzu. هذا الأسلوب مفيد إذا كان لديك تطبيقات مخصصة فقط للاحتفاظ بملفات ثابتة مثل HTML أو CSS أو تطبيقات الواجهة الأمامية التي تم إنشاؤها باستخدام إطار عمل JavaScript الذي تختاره. يمكنك نشر هذه التطبيقات مباشرة باستخدام خادم ويب تم تكوينه تلقائيا (HTTPD وN NGINX) لخدمة هذه الأصول.

المتطلبات الأساسية

نشر ملفاتك الثابتة

إشعار

تركز هذه المقالة على وصف تكوينات التوزيع واستكشاف الأخطاء وإصلاحها الخاصة بنشر الملفات الثابتة على الويب. لفهم سيناريوهات الإنشاء والتوزيع العامة لخطة Azure Springs Apps Enterprise، راجع قسم Build service on demand في استخدام Tanzu Build Service وكيفية نشر تطبيقات polyglot.

يمكنك نشر الملفات الثابتة إلى Azure Spring Apps باستخدام خوادم ويب NGINX أو HTTPD بالطرق التالية:

  • يمكنك نشر الملفات الثابتة مباشرة. يقوم Azure Spring Apps تلقائيا بتكوين خادم الويب المحدد لخدمة الملفات الثابتة.
  • يمكنك إنشاء تطبيق الواجهة الأمامية في إطار عمل JavaScript الذي تختاره، ثم نشر تطبيق الواجهة الأمامية الديناميكي من التعليمات البرمجية المصدر. تنشئ Azure Spring Apps تطبيقك في محتوى ثابت وتستخدم خادم الويب الذي تم تكوينه لخدمة الملفات الثابتة.

يمكنك أيضا إنشاء ملف تكوين خادم لتخصيص خادم الويب.

أمثلة التوزيع

توضح أمثلة Azure CLI في هذا القسم إنشاء الملفات الثابتة ونشرها لسيناريو سجل الحاوية:

  • سجل الحاويات المدار في Azure Spring Apps.
  • سجل الحاوية المدارة من قبل المستخدم.

إنشاء الملفات الثابتة ونشرها مباشرة

ينشر هذا المثال الملفات الثابتة مباشرة باستخدام ملف تكوين خادم افتراضي تم إنشاؤه تلقائيا.

ينشر الأمر التالي ملفا ثابتا:

az spring app deploy
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx

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

إنشاء تطبيق الواجهة الأمامية ونشره كمحتوى ثابت

ينشر هذا المثال تطبيق واجهة أمامية ديناميكية من التعليمات البرمجية المصدر.

ينشر الأمر التالي تطبيقا:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx BP_NODE_RUN_SCRIPTS=build BP_WEB_SERVER_ROOT=build

إنشاء الملفات الثابتة ونشرها باستخدام ملف تكوين مخصص

ينشر هذا المثال الملفات الثابتة باستخدام ملف تكوين خادم مخصص.

ينشر الأمر التالي تطبيقا:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code>

لمزيد من المعلومات، راجع قسم استخدام ملف تكوين خادم مخصص في هذه المقالة.

التعليمة البرمجية العينة

إشعار

يحتفظ مجتمع مصدر مفتوح Paketo بنموذج التعليمات البرمجية.

توضح عينات Paketo buildpacks حالات الاستخدام الشائعة للعديد من أنواع التطبيقات المختلفة، بما في ذلك حالات الاستخدام التالية:

  • تقديم ملفات ثابتة مع ملف تكوين خادم افتراضي باستخدام BP_WEB_SERVER لتحديد إما HTTPD أو NGINX.
  • استخدام Node مدير الحِزَم لإنشاء تطبيق React في ملفات ثابتة يمكن لخادم الويب تقديمها. استخدم الخطوات التالية:
    1. تعريف برنامج نصي ضمن scripts خاصية ملف package.json الذي يبني الأصول الثابتة الجاهزة للإنتاج. بالنسبة إلى React، إنه build.
    2. تعرف على مكان تخزين الأصول الثابتة بعد تشغيل البرنامج النصي للبناء. بالنسبة إلى React، يتم تخزين الأصول الثابتة بشكل ./build افتراضي.
    3. تعيين BP_NODE_RUN_SCRIPTS إلى اسم البرنامج النصي للبناء.
    4. تعيين BP_WEB_SERVER_ROOT إلى دليل إخراج البنية.
  • تقديم ملفات ثابتة مع ملف تكوين الخادم الخاص بك، باستخدام إما HTTPD أو NGINX.

تكوين ملف تكوين خادم تم إنشاؤه تلقائيا

يمكنك استخدام متغيرات البيئة لتعديل ملف تكوين الخادم الذي تم إنشاؤه تلقائيا. يعرض الجدول التالي متغيرات البيئة المدعومة.

متغير بيئة القيمة المدعومة ‏‏الوصف
BP_WEB_SERVER nginx أو httpd يحدد نوع خادم الويب، إما nginx ل Nginx أو httpd لخادم Apache HTTP. مطلوب عند استخدام ملف تكوين الخادم الذي تم إنشاؤه تلقائيا.
BP_WEB_SERVER_ROOT مسار ملف مطلق أو مسار ملف بالنسبة إلى /workspace. تعيين الدليل الجذر للملفات الثابتة. الافتراضي هو public.
BP_WEB_SERVER_ENABLE_PUSH_STATE صواب أو خطأ تمكين توجيه حالة الدفع للتطبيق الخاص بك. بغض النظر عن المسار المطلوب، يتم تقديم index.html دائما. مفيد لتطبيقات الويب أحادية الصفحة.
BP_WEB_SERVER_FORCE_HTTPS صواب أو خطأ يفرض HTTPS لاتصالات الخادم عن طريق إعادة توجيه جميع الطلبات لاستخدام بروتوكول HTTPS.

متغيرات البيئة التالية غير مدعومة.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

استخدام ملف تكوين خادم مخصص

يمكنك تكوين خادم ويب باستخدام ملف تكوين خادم مخصص. يعرض الجدول التالي مسار ملف التكوين:

خادم الويب مسار ملف التكوين الافتراضي كيفية تخصيص مسار ملف تكوين الخادم
nginx nginx.conf ضمن المسار الجذر للتعليمات البرمجية المصدر. استخدم متغير BP_NGINX_CONF_LOCATION البيئة لتحديد اسم ملف التكوين. ضع الملف ضمن المسار الجذر للتعليمات البرمجية المصدر.
httpd httpd.conf ضمن المسار الجذر للتعليمات البرمجية المصدر. ‏‏غير مدعومة.

يجب أن يتوافق ملف التكوين مع القيود الموضحة في الجدول التالي.

التكوين ‏‏الوصف تكوين Nginx تكوين Httpd
منفذ الاستماع يجب أن يستمع خادم الويب إلى المنفذ 8080. تتحقق الخدمة من المنفذ على TCP للتأكد من جاهزيته وما إذا كان مباشرا. يجب استخدام المتغير PORT القالب في ملف التكوين. يتم إدخال رقم المنفذ المناسب عند تشغيل خادم الويب. listen {{PORT}} Listen "${PORT}"
مسار السجل مسار سجل التكوين إلى وحدة التحكم. access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
مسار الملف مع إذن الكتابة يتم منح خادم ويب إذن الكتابة إلى دليل /tmp . يتطلب تكوين المسار الكامل إذن الكتابة ضمن الدليل /tmp . على سبيل المثال: client_body_temp_path /tmp/client_body_temp
الحد الأقصى لحجم النص المقبول لطلب العميل خادم ويب خلف البوابة. يتم تعيين الحد الأقصى لحجم النص المقبول لطلب العميل إلى 500 متر في البوابة ويجب أن تكون قيمة خادم الويب أقل من 500 متر. client_max_body_size يجب أن يكون أقل من 500 متر. LimitRequestBody يجب أن يكون أقل من 500 متر.

روابط Buildpack

يدعم نشر الملفات الثابتة إلى خطة Azure Spring Apps Enterprise ربط حزمة إنشاء Dynatrace. htpasswd ربط buildpack غير مدعوم.

لمزيد من المعلومات، راجع كيفية تكوين تكامل APM وشهادات CA.

أخطاء البناء والتوزيع الشائعة

قد يؤدي نشر الملفات الثابتة إلى مثيل Azure Spring Apps Enterprise إلى إنشاء أخطاء البناء الشائعة التالية:

  • ERROR: No buildpack groups passed detection.
  • ERROR: Please check that you're running against the correct path.
  • ERROR: failed to detect: no buildpacks participating

السبب الجذري لهذه الأخطاء هو عدم تحديد نوع خادم الويب. لحل هذه الأخطاء، قم بتعيين متغير BP_WEB_SERVER البيئة إلى nginx أو httpd.

يصف الجدول التالي أخطاء التوزيع الشائعة عند نشر الملفات الثابتة إلى Azure Spring Apps Enterprise.

رسالة الخطأ السبب الجذري Solution
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode فشل بدء تشغيل خادم الويب. تحقق من صحة ملف تكوين الخادم لمعرفة ما إذا كان هناك خطأ في التكوين. ثم تحقق مما إذا كان ملف التكوين الخاص بك يتوافق مع القيود الموضحة في قسم استخدام ملف تكوين خادم مخصص.
mkdir() "/var/client_body_temp" failed (13: Permission denied) لا يملك خادم الويب إذن الكتابة إلى المسار المحدد. تكوين المسار ضمن الدليل /tmp؛ على سبيل المثال: /tmp/client_body_temp.

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