منهج نواة تقنية الجلسة التاسعة عشرة

من ويكي أضِف
مراجعة 12:15، 17 مايو 2021 بواسطة Emadsaleh (نقاش | مساهمات) (أعدادات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

الهدف من الجلسة

  • فهم توجيهات الإعدادات الرئيسية/الأساسية في أباتشي (apache)
  • إعداد أباتشي (apache) ليخدم موقع أو أكثر على نفس السيرفر (server)


محتوى الجلسة

  • التعريف بأباتشي (apache)
  • إعداد أباتشي (apache)
  • فهم توجيهات الإعدادات الرئيسية (جذر الخادم ، توجيهات التسجيل ، الخيارات ، الاستماع ، وحدة التحميل ، MPMs...)
  • شرح مفهوم السياق وتوجيه السياق
  • فهم المضيف الظاهري
  • تأريخ المضيف الظاهري
  • النهج الحديث للمضيف الظاهري
  • إعداد الخادم من البداية

طريقة التقديم

  • التعريف بأباتشي (apache)

ما هو أباتشي (apache)؟ وما هو خادم الويب (web server)؟

(إجابة استرشادية) هو خادم الويب الأشهر والأكثر انتشاراً في العالم والذي يخدم كثير من المواقع بدايةً إطلاقه في العام 1995.

خادم الويب هو برنامج يقوم بخدمة المحتوى على السيرفر (server) ،وذلك بإستخدام بروتوكول نقل النص الفائق (Hypertext Transfer Protocol 'HTTP).


إعداد أباتشي (apache configuration)

كيف يتم إعداد أباتشي (apache)؟

(إجابة استرشادية) أولاً بتنصيبه ،ثم تفعيل الخدمة الخاصة به (يتضمن تدريب) ويمكن التعرف على بعض الأوامر الخاصة بإدارة أباتشي (apache) أيضاً ومنها:


تفعيل أباتشي (apache)

   Debian # systemctl enable apache2
     Redhat # systemctl enable httpd

إلغاء تفعيل أباتشي (apache)

   Debian # systemctl disable apache2
     Redhat # systemctl disable httpd

إيقاف أباتشي (apache)

  Debian # systemctl stop apache2
  Redhat # systemctl stop httpd

تشغيل أباتشي (apache)

  Debian # systemctl start apache2
  Redhat # systemctl start httpd

إعادة تشغيل أباتشي (apache)

  Debian # systemctl restart apache2
    Redhat # systemctl restart httpd

إعادة تحميل الوحدات الخاصة بأباتشي (apache)

  Debian # systemctl reload apache2
    Redhat # systemctl reload httpd

حالة أباتشي (apache)

  Debian # systemctl status apache2
    Redhat # systemctl status httpd


أين تقع ملفات الإعدادات الرئيسية لأباتشي (apache configuration files)؟

(إجابة استرشادية) الإعدادات الإفتراضية تقع تحت المسار

/etc/apache2/ <-- (Debian) /etc/httpd/conf/ <-- (Redhat)


فهم توجيهات الإعدادات الرئيسية (جذر الخادم ، الاستماع ، الخيارات ، توجيهات تأريخ الأحداث ، وحدة التحميل ، MPMs...)

ما هو توجيه جذر الخادم (ServerRoot)؟

(إجابة استرشادية) هو المسار الذي يتم فيه تخزين ملفات الإعدادات (configurations) وتأريخ الأحداث (logs) الخاصة بأباتشي (apache) سواء كانت ملفات فعلية او كانت روابط لملفات أخرى كالحال مع ملفات تأريخ الأحداث (logs).

ما هو توجيه الإستماع (listen)؟

(إجابة استرشادية) يبين المنفذ الذي يستمع من خلاله الخادم الى الطلبات (requests) القادمة له ،الإفتراضي 80 لبروتوكول http و 443 لبروتوكول https. ما هو توجيه الخيارات (options)؟

(إجابة استرشادية) هو التوجيه الذي يتحكم في المزايا المتاحة لمسار معين. على سبيل المثال اتباع الروابط في مسار معين (FollowSymLinks).

ما هي توجيهات تأريخ الأحداث (logging directives)؟

(إجابة استرشادية) هي التوجيهات التي تحدد أين ستخزن تأريخ الأحداث كـ تأريخ الأخطاء (ErrorLog) ، شكل التأريخ (LogFormat) ، درجة التأريخ (LogLevel) ...الخ

ما هو توجيه وحدة التحميل (LoadModule)؟

(إجابة استرشادية) هو التوجيه المسؤول عن تحميل الوحدات التشاركية الديناميكية (Dynamic Shared Objects modules).

ما هي توجيهات (MPMs)؟

(إجابة استرشادية) هي التوجيهات المسؤولة عن إدارة الخصائص الخاصة بمجموعة السيرفر (server-pool).

شرح مفهوم السياق وتوجيه السياق

ما هو السياق (context)؟

(إجابة استرشادية) يرمز إلى الاذون المرتبطة بالمجلد المستعمل من خلال أباتشي (apache).

ما هو توجيه السياق (directive context)؟

(إجابة استرشادية) يرمز إلى أين يكون التوجيه مسموح في ملف إعدادات الخادم.


فهم المضيف الظاهري

ما هو المضيف الظاهري (virtual host)؟

(إجابة استرشادية) هو تشغيل أكثر من موقع (website) على نفس السيرفر (server).



تأريخ المضيف الظاهري

هل كان المضيف الظاهري موجود من قبل؟

(إجابة استرشادية) لا كان السيرفر الواحد يخدم موقع واحد قبل أن تظهر هذه الميزة المميزة وتغير الموازين بشكل أمكن السيرفر الواحد ان يخدم أكثر من موقع وبكفاءة عالية.


النهج الحديث للمضيف الظاهري

ما هو النهج الحديث للمضيف الظاهري (virtual host)؟

(إجابة استرشادية) يوجد شكلان رئيسيان للمضيف الظاهري (virtual host) الآن "على أساس الإسم (name-based)" و "على أساس الـ ip (IP-based)".

يوفر المضيف الظاهري على أساس الإسم (name-based) تفاصيل تقنية مثل العناوين وكيفية إدارتها ولكن يجب على المستفيد (client) إمداد الخادم بالبروتوكول المستخدم للوصول للوجهة الصحيحة.

يستخدم المضيف الظاهري على أساس IP (IP-based) عنوان IP منفصل لكل إسم مضيف ويهذا يتم من خلال أي بروتوكول ولكن يلزم عنوان IP لكل مضيف.



التدريب

إعداد الخادم من البداية

(تطبيق عملي)

 <Directory /var/www/html/example1>
   Require all granted
 </Directory>
 <VirtualHost *:80>
   DocumentRoot "/var/www/html/example1"
   ServerName www.example.com
   ServerAlias example.com
   ServerAdmin root@example.com
   ErrorLog "/var/log/httpd/error_log_example1"
   CustomLog "/var/log/httpd/access_log_example1" combined
 </VirtualHost>