في هذه السلسلة من المقالات ، سنحاول تقديم نظرة عامة على أساسيات استخدام Payara Server في الإنتاج باستخدام Apache Web Server (httpd) و Ubuntu. لا تعتمد العديد من المفاهيم على الأدوات التي نستخدمها هنا ويمكن تطبيقها على سيناريوهات أخرى.
هدفنا هو تكوين ما يلي:

هنا لدينا خادم الويب Apache والذي سيكون متاحًا لمستخدمينا. سيتم إرسال طلباتهم إلى واحد من حالتين من خادم Payara. سننظر هنا في استخدام "الإلتصاق" لجلسات JSESSIONID القائمة على ملفات تعريف الارتباط لضمان أن يتفاعل كل مستخدم مع خادم Payara نفسه ، وكذلك النسخ المتماثل للجلسة ، لضمان أنه في حالة فشل خادم Payara ، يمكن للآخر التعامل مع الجلسات الحالية لا مشكلة
نحن نفترض أن خادم الويب Apache مثبت بالفعل. خطوتنا التالية هي تكوين إعادة توجيه الطلب لإرسال حركة المرور إلى خادم Payara.
ما هو إعادة توجيه الطلب؟
تتم إعادة توجيه الطلب (أو الوكيل) عندما يرسل خادم يستقبل حركة مرور الويب إلى وجهة أخرى. يمكن استخدامها لإخفاء الموقع الحقيقي للمستخدم ، وليس لرؤية الأنظمة الداخلية أو للتحكم في الأداء. مثل معظم خوادم الويب ، يمكن استكمال خادم الويب Apache بوحدات تمكنه من إعادة توجيه الطلبات إلى الخادم وإرسال ردود عبر وكيل. هذا يعني أنه يمكنك استخدام Apache كوسيط ، مما يلغي الحاجة إلى تحديد أرقام المنافذ أو عناوين IP الدقيقة ويسمح للمستخدم بتلقي الردود من نفس الخادم (بدلاً من النقر فوق مضيف محلي وتعيين شريط عنوان باسم مضيف محلي : 8080 )
تكوين إعادة توجيه الطلب بين خادم الويب Apache وخادم Payara
في هذا المنشور ، سننظر إلى الحزمة المتوفرة في مستودع أوبونتو. تحتوي حزمة Ubuntu على ثنائيات Apache ، ولكن لديها أيضًا "أدوات مساعدة" إضافية لإدارة ملفات التكوين. في Ubuntu 18 ، تعد الوحدتان اللتان نحتاج إلى إضافتهما إلى Apache جزءًا من حزمة apache2 التي قمنا بتثبيتها مسبقًا. يمكن تثبيته من المستودع باستخدام:
sudo apt install apache2
لاحظ أنه قبل Ubuntu 16.04 ، ستحتاج إلى استخدام "apt-get" بدلاً من "apt".سنقوم بتثبيت وحدتين لتمكين إعادة التوجيه الأساسية لطلبات http - mod_proxy و mod_proxy_http. في Ubuntu ، تتحكم أدوات المساعدة في تثبيت هذه الوحدات - لتسهيل الأمر ، ستبحث الأدوات عن تبعياتها وتضمينها. من المفيد أن يتطلب mod_proxy_http أن يعمل mod_proxy ، مما يعني أن فريقنا يشبه هذا:
sudo a2enmod proxy_http
لاحظ أنه في هذه الأوامر ، يمكننا حذف البادئة "mod_"

إذا كنت ترغب في تعطيل الوحدة النمطية ، فهناك أداة مساعدة لـ a2enmod تسمى a2dismod ، والتي يتم استخدامها بنفس الطريقة. اكتشفت الأداة تبعية وتضمنت أيضًا mod_proxy. إذا كان لديك العديد من الوحدات النمطية التي تريد تنشيطها ، فيمكنك إضافتها بعد proxy_http ، مع فصلها بمسافات ...
سنقوم بإعادة تشغيل الخادم لاحقًا ، حيث نحتاج أيضًا إلى تغيير التكوين.
تحتوي الحزمة apache2 في أوبونتو على مثال لتكوين موقع يسمى "الافتراضي 000". يوجد ملف التهيئة لهذا الموقع في المجلد / etc / apache2 / sites-available ويحتوي على رابط رمزي للمجلد الذي تم تمكين المواقع به.
هيكل ملف تكوين اباتشي
كقاعدة عامة ، سترى أن أدلة الإنترنت تشير إلى httpd.conf كملف تكوين للتحرير. هذا هو ملف التكوين الافتراضي "الأصل" فقط. في أنظمة دبيان / أوبونتو (ومشتقاتها ، مثل Linux Mint) ، يكون ملف البحث هو apache2.conf.
تتم قراءة هذا الملف ، ويتم تطبيق توجيهاته من أعلى إلى أسفل ، لذلك إذا تم تعيين قيمتين مختلفتين لنفس الخاصية ، فسيتم تطبيق الثانية. (بتعبير أدق ، سيتم تطبيق الأول فقط حتى تتم قراءة المعلمة الثانية).
يمكن لهذا الملف أيضًا "تضمين" الملفات والمجلدات (لاحظ أن أحرف البدل تعمل أيضًا). سيتم قراءتها ودمجها مع التكوين الرئيسي في المكان الذي تتم كتابة "تضمين" فيه. وبالتالي ، سيكون السطر الأخير في ملف التكوين الرئيسي (إذا لم يحدد ملفًا آخر) هو آخر سطر للتكوين يتم تثبيته ، بغض النظر عن ما.
الصفحة الافتراضية في تثبيت Apache الجديد على Ubuntu موجودة في /var/www/index.html وتعطي نظرة عامة جيدة على كيفية عمل هذا بالتفصيل.
إنشاء تكوين موقع جديد
لن نستخدم التكوين الافتراضي لأننا بحاجة إلى إضافة سلوك معين. انسخ التكوين القديم من المواقع المتاحة وأعد تسميته شيئًا لا يُنسى.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/payara-site.conf
افتح ملفًا جديدًا في محرر النصوص المفضل لديك كجذر. يجب أن ترى شيء مثل هذا:

يحتوي العنصر على سلسلة من التوجيهات تخبر الخادم بكيفية الاستجابة للطلبات الواردة المدرجة. في هذا المثال ، يقوم <VirtualHost *: 80> بمعالجة جميع الردود التي تلقاها الخادم عبر المنفذ 80. للحصول على وصف أكثر تفصيلًا لعلامات VirtualHost ، راجع وثائق Apache.
نحتاج إلى إضافة سطرين في العلامات لإخبار Apache عن كيفية التعامل مع حركة المرور الواردة والصادرة - واحد لإخبار Apache عن مكان إرسال الطلبات ، والآخر لإخبار Apache عن مصدر الإجابات. بهذه الطريقة ، يمكن إعادة توجيه المستخدم الذي يزور مضيف محلي إلى خادم التطبيق الخاص بنا على مضيف محلي : 8080 / ، والردود الموجهة إلى مضيف محلي : 8080 / تتم إعادة توجيهها بدلاً من ذلك ، بحيث يرى المستخدم منهم قادمون من مضيف محلي .
للتحكم في حركة المرور الواردة ، أضف السطر:
ProxyPass / http://localhost:8080/
يطلب هذا التوجيه من Apache إرسال كل شيء بعد اسم مجال الخادم إلى
المضيف المحلي : 8080 / ، كما لو أن المستخدم انتقل مباشرةً إلى عنوان URL هذا.
ProxyPassReverse / http://localhost:8080/
يخبر هذا التوجيه Apache عنوان URL الخاص بالبروكسي الخاص بالوكيل ، على الرغم من أن الاستجابة قد تم إرجاعها من مثيل خادم Payara إلى المنفذ 8080 ، يبدو أن عنوان URL قد تم استلامه من Apache. يعني هذان التوجيهان ، عند استخدامهما معًا ، أنه يمكننا تجنب التعبيرات العادية المعقدة باستخدام mod_rewrite.
على افتراض أن اسم النطاق الذي نريد استخدامه ، على سبيل المثال ، www.example.com ، فإن التكوين الخاص بنا يعني أن الطلب إلى www.example.com/myapp سيتم إرساله فعليًا إلى خادم Payara ، كما لو كان المستخدم قد وصل مباشرة إلى المضيف المحلي: 8080 // MyApp.
يجب أن يبدو الملف الآن بهذا الشكل (لقد حذفت معظم التعليقات لتوضيح ما هو مطلوب بالضبط):

احفظ ملفك
لتعطيل الموقع الافتراضي وتنشيط التكوين الجديد لدينا ، قم بتشغيل الأوامر:
sudo a2dissite 000-default.conf sudo a2ensite payaraSite.conf
أعد تشغيل خدمة Apache HTTP Server (إعادة التشغيل التي تخطيناها مسبقًا):
sudo service apache2 restart
لإيقاف وبدء تشغيل خادم HTTP Apache ، فهو:
توقف الخدمة
sudo service apache2 stop sudo service apache2 start
لا تنس أن تبدأ خادم Payara:
/opt/payara5/bin/asadmin start-domain domain1
قبل إجراء تغييرات التكوين من خلال الانتقال إلى المضيف المحلي ، سيتم نقلك إلى شاشة الترحيب في Apache:

لكننا أضفنا الآن إلى الخادم الوكيل لدينا وقمنا بتضمين توجيهات جديدة لتهيئة مستخدم Apache عندما ندخل localhost / index.html ، والذي نرسله الآن إلى شاشة الترحيب في Payara Server:

الآن يمكنك إضافة تطبيقات إلى خادم Payara
وبالتالي ، لدينا الآن خادم Apache HTTP نشط يعمل كوكيلنا (مع القدرة على إضافة وحدات إضافية) ، وخادم Payara يعمل ، جاهز لإضافة تطبيقات إليه.
لقد مررنا بتثبيت كلا الخادمين ، وقمنا بتكوين Apache واستكشاف نظام الملفات ونظرنا بإيجاز شديد في أوامر خادم Payad Server asadmin.
في المرة القادمة ، سننظر في كيفية توسيع وظائف Apache و Payara Server ، وكيف يمكننا أن نجعل Payara Server يوفر قابلية تطوير وتحسينات إضافية سنضيفها إلى Apache لمعالجة عدة خوادم داخلية.