كيفية إعداد وكيل عكسي (خطوة بخطوة لـ Nginx و Apache)

نشرت: 2020-08-14

يجلس الوكيل العكسي أمام خادم الويب ويتلقى جميع الطلبات قبل وصولها إلى الخادم الأصلي. إنه يعمل بشكل مشابه للخادم الوكيل الأمامي ، إلا أنه في هذه الحالة يكون خادم الويب الذي يستخدم الوكيل بدلاً من المستخدم أو العميل. تُستخدم الوكلاء العكسيون عادةً لتحسين أداء خادم الويب وأمانه وموثوقيته.

على سبيل المثال ، يمكن أن يكون لديك موقع غير WordPress مستضاف على نطاق example.com على الخادم A وتشغيل مدونته على WordPress على example.com/blog URL مستضاف على الخادم B. يمكنك تحقيق ذلك عن طريق إضافة وكيل عكسي لـ خادم يستضيف موقعك الأساسي. يمكنك تكوين الوكيل العكسي لإعادة توجيه الطلبات إلى المدونة إلى خادم مختلف (على سبيل المثال ، مضيف WordPress مُدار مثل Kinsta).

في هذه المقالة ، ستتعلم أساسيات خوادم الوكيل العكسي ، وكيف تعمل ، وما هي فوائدها الرئيسية ، وكيف يمكنك استخدامها لتسريع موقع WordPress الخاص بك وتأمينه.

متحمس؟ لنبدأ!

ما هو عكس الوكيل؟

لفهم ماهية الخادم الوكيل العكسي ، تحتاج أولاً إلى معرفة دوره والتعرف على جميع المصطلحات المرتبطة به.

عندما تتصفح الويب بشكل طبيعي عن طريق إدخال اسم مجال أو النقر فوق ارتباط ، يتصل متصفحك / جهازك بخادم موقع الويب مباشرةً ويبدأ في تنزيل موارده.

رسم بياني يوضح كيفية تصفح الإنترنت بشكل نموذجي
كيف يعمل التصفح على الإنترنت عادة

إذا كنت ترغب في إخفاء هوية عنوان IP الخاص بك من مواقع الويب التي تزورها ، فيمكنك استخدام خادم وكيل لإرسال جميع طلباتك إليه أولاً. سيقوم بإعادة توجيه طلباتك إلى محلل DNS ثم يقوم بتنزيل موارد موقع الويب من الخادم الأصلي الخاص به.

بعد ذلك ، سيتم تمرير هذه الموارد إلى جهازك. يسمى هذا الوكيل الأمامي.

مخطط معلوماتي يوضح كيفية عمل الوكيل الأمامي
كيف يعمل خادم الوكيل الأمامي

أنت مخفي تمامًا عن موقع الويب لأنه يعتقد أن طلبك يأتي من الوكيل الأمامي.

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

يعمل الوكيل الأمامي تقريبًا بنفس الطريقة التي تعمل بها الشبكة الافتراضية الخاصة (VPN) ، لكنها تقنيات مميزة مع حالات استخدام فريدة (يمكن أن تتداخل في بعض الأحيان).

عكس الخادم الوكيل مقابل الخادم الوكيل للأمام

يعمل الخادم الوكيل العكسي كواجهة للخادم الأصلي للحفاظ على إخفاء الهوية وتعزيز الأمان ، تمامًا مثل كيفية استخدام المستخدم / العميل لوكيل إعادة توجيه لتحقيق نفس الشيء. إنه يضمن عدم اتصال أي مستخدم أو عميل مباشرة بالخادم الأصلي.

مخطط معلوماتي يوضح كيفية عمل الوكيل العكسي
كيف يعمل خادم وكيل عكسي

الفرق بين الوكيل الأمامي مقابل الوكيل العكسي طفيف ، لكنهما يعملان بشكل مختلف.

يمكن لكليهما العمل معًا نظرًا لعدم وجود تداخل بين وظائفهما. عادةً ما يستخدم المستخدمون / العملاء وكيلًا للأمام ، بينما تستخدم الخوادم الأصلية وكيلًا عكسيًا.

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

نظرًا لأن مسؤول الخادم يمكنه التحكم في كيفية عمل الوكيل العكسي ، يمكنك استخدامه لتمكين العديد من الميزات المفيدة.

سنقوم بإدراج جميع مزاياها لاحقًا في هذا المنشور.

لماذا استخدام وكيل عكسي؟

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

في حالات أخرى ، قد تستضيف الشركة موقعها على خدمة خارجية لا تسمح لها بتثبيت أي برنامج خارجي (مثل WordPress). عادةً ما يكون هؤلاء من تجار التجزئة الصغار إلى متوسطي الحجم الذين يستخدمون منصة التجارة الإلكترونية مثل Shopify.

نظرًا لأن WordPress يحتوي على ميزات قوية لنظام إدارة المحتوى ، فقد تفضل العديد من الشركات ، بما في ذلك المؤسسات الكبيرة التي لديها مواقع ويب مخصصة ، استضافة مدوناتها باستخدام WordPress.

تتمثل إحدى طرق التغلب على هذه المشكلة في تثبيت WordPress على النطاق الفرعي لموقع الويب الرئيسي وهيكل قوائم التنقل بحيث يمكن للمستخدمين التبديل بسهولة بين موقع الويب الرئيسي والمدونة.

نظرًا لأن النطاقات الفرعية تتصرف كمجال فريد ، فقد يؤثر ذلك على مُحسنات محركات البحث لموقعك. على الرغم من أن Google يتعامل مع النطاقات الفرعية والأدلة الفرعية على حد سواء ، إلا أنه يتطلب المزيد من الجهد لتحسين موقع ويب لتصنيفات محرك البحث إذا كان مستضافًا على نطاق فرعي أكثر مما لو كان مستضافًا في دليل فرعي.

طريقتان لاستضافة موقع ويب بديل تحت نفس اسم المجال
طريقتان لاستضافة المدونات على موقع الويب

أعادت Google التأكيد على أنها تتعامل مع النطاقات الفرعية والأدلة الفرعية على قدم المساواة ، لكن بعض خبراء تحسين محركات البحث لا يوافقون عليها. وحتى إذا لم يؤثر ذلك على مُحسّنات محرّكات البحث الخاصة بالموقع ، فمن السهل الحفاظ على الموقع المستضاف في دليل فرعي.

لهذا السبب يمكنك استخدام وكيل عكسي لإعادة توجيه الطلبات إلى مدونة الموقع المستضافة على خادم منفصل. على سبيل المثال ، يمكن للبنك استضافة موقعه الرئيسي على خوادمه بشكل آمن ، ولكن يمكنه أيضًا استضافة مدونته التي تعمل بنظام WordPress بشكل منفصل على مضيف WordPress مُدار مثل Kinsta.

مثال على حالة استخدام خادم وكيل عكسي
مثال على حالة استخدام وكيل عكسي

يعد توحيد موقعين مختلفين تحت اسم مجال واحد أحد المزايا الرئيسية لاستخدام وكيل عكسي. يساعد العلامات التجارية في الحفاظ على مواقعها منظمة واحترافية والحفاظ على المصداقية.

تعرف على كيفية قيام الوكيل العكسي بتحسين الأداء والأمان والموثوقية ... كل ذلك في هذا الدليل ️ انقر للتغريد

فوائد استخدام وكيل عكسي

بالإضافة إلى حالة الاستخدام المذكورة أعلاه ، تمنح الوكلاء العكسيون أيضًا العديد من المزايا الأخرى. يناقش القسم أدناه بعض مزاياها الرئيسية.

توزيع الحمل

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

يعد الوكيل العكسي طريقة رائعة لإعداد هذا حيث يمكنه استقبال حركة المرور الواردة قبل أن تصل إلى الخادم الأصلي. إذا كان الخادم الأصلي محملاً بشكل زائد أو فشل تمامًا ، فيمكنه توزيع حركة المرور على الخوادم الأخرى دون التأثير على وظائف الموقع.

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

نظرًا لأننا نستخدم معظم الوكلاء العكسيين الرائعين بشكل أساسي لموازنة التحميل ، يشار إليهم أيضًا باسم Load Balancers .

موازنة تحميل الخادم العالمية (GSLB)

GSLB هي طريقة متقدمة لموازنة الحمل لتوزيع حركة مرور موقع الويب بين العديد من الخوادم الموضوعة بشكل استراتيجي حول العالم. يتم ذلك عادةً عبر تقنية التوجيه anycast ، حيث يختار الوكيل العكسي عقدة الخادم بناءً على أسرع وقت للسفر بين العميل والخادم.

لا يعمل GSLB على زيادة موثوقية الموقع وأمانه إلى حد كبير فحسب ، بل يقلل أيضًا من زمن الوصول وأوقات التحميل ، وبالتالي يعزز تجربة المستخدم. يمكنك استخدام GSLB مع تقنيات تحسين الشبكة الأخرى مثل Spoon Feeding لتحرير الموارد الحسابية للخوادم الأصلية بشكل أكبر.

على الرغم من أنه يمكنك إعداد Global Server Load Balancing يدويًا على الخادم الخاص بك ، إلا أنه عادةً ما يتم الاعتناء به بواسطة شبكات CDN مخصصة مثل Cloudflare و KeyCDN (التي تعمل أيضًا على تشغيل Kinsta CDN). يخدم Kinsta جميع مواقع الويب المستضافة معها من خلال Load Balancer المدعوم من Google Cloud Platform.

تعزيز الأمن

يمكن للخوادم الوكيلة العكسية إخفاء عنوان IP والخصائص الأخرى لخوادم الأصل. وبالتالي ، يمكن للخادم الأصلي لموقع الويب الخاص بك الحفاظ على إخفاء هويته بشكل أفضل ، مما يزيد من أمانه بشكل كبير.

نظرًا لأن الوكيل العكسي سيتلقى كل حركة المرور قبل أن يصل إلى الخادم الرئيسي ، فإن أي مهاجمين أو متسللين سيجدون صعوبة أكبر في استهداف موقع الويب الخاص بك بتهديدات أمنية مثل هجمات DDoS.

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

يمكن لبروكسي عكسي مثل HAProxy إضافة مصادقة وصول HTTP أساسية إلى خادم ويب لم يتم تمكينه. يمكنك أيضًا استخدام وكيل عكسي لإضافة مصادقة مركزية لأنواع مختلفة من الطلبات.

قوية التخزين المؤقت

يمكنك استخدام وكيل عكسي لأغراض تسريع الويب عن طريق التخزين المؤقت لكل من المحتوى الثابت والديناميكي. يمكن أن يؤدي ذلك إلى تقليل الحمل على الخادم الأصلي ، مما يؤدي إلى موقع ويب أسرع.

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

تعتبر Varnish و Nginx FastCGI أمثلة بارزة للخوادم الوكيلة العكسية التي تُستخدم للتخزين المؤقت لمحتوى الويب. إذا كان موقعك مستضافًا مع Kinsta ، فلا داعي للقلق بشأن التخزين المؤقت لأن Kinsta يتولى جميع إجراءات التخزين المؤقت نيابة عنك.

ضغط متفوق

تستهلك استجابات الخادم الكثير من النطاق الترددي. يمكن أن يؤدي ضغط استجابات الخادم (على سبيل المثال باستخدام gzip) قبل إرسالها إلى العميل إلى تقليل مقدار النطاق الترددي المطلوب ، مما يؤدي إلى تسريع استجابات الخادم عبر الشبكة.

يعد الوكيل العكسي مثاليًا لضغط استجابات الخادم لأنه يقع بين الخوادم الأصلية والعميل.

تشفير SSL محسن

يمكن أن يؤدي تشفير وفك تشفير طلبات SSL / TLS لكل عميل إلى فرض ضرائب كبيرة على الخادم الأصلي. يمكن للخادم الوكيل العكسي القيام بهذه المهمة لتحرير موارد الخادم الأصلي لمهام أخرى مهمة ، مثل تقديم المحتوى.

ميزة أخرى لإلغاء تحميل تشفير وفك تشفير SSL / TSL هي تقليل زمن الوصول للعملاء البعيدين جغرافيًا عن الخادم الأصلي.

يمكنك أيضًا اختيار وكيل عكسي مع أجهزة تسريع SSL / TLS متخصصة لتحسين هذه المهمة بشكل أكبر. يسمى هذا الوكيل العكسي وكيل إنهاء SSL / TLS. لا تدعم بعض الخوادم مثل Varnish بروتوكولات SSL / TSL ، لذا فإن الوكيل العكسي لإنهاء SSL / TSL يمكن أن يساعد في تأمين حركة المرور التي تمر من خلالها.

أفضل اختبار أ / ب

تتطلب منك معظم أدوات اختبار A / B استخدام مكتبات JavaScript خارجية لتحميل وظائفها. ومع ذلك ، يمكن أن يؤدي تحميل البرامج النصية التابعة لجهات خارجية إلى إبطاء أوقات تحميل صفحتك وإنشاء تجربة متقطعة للمستخدمين.

بدلاً من ذلك ، يمكنك استخدام وكيل عكسي لإنشاء تدفقات منفصلة على مستوى الخادم نفسه. على سبيل المثال ، يمكنك استخدام split_clients في Nginx أو طرق sticky route الثابت للتحكم في إعادة توجيه حركة المرور.

يمكنك الرجوع إلى البرامج التعليمية على Nginx و freeCodeCamp لمعرفة المزيد حول إجراء اختبار A / B باستخدام وكيل عكسي.

مراقبة وتسجيل حركة المرور

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

الوكلاء العكسيون الأكثر شهرة

وفقًا لـ W3Techs ، لا تستخدم ما يقرب من 83٪ من مواقع الويب خدمات الوكيل العكسي التي يراقبونها.

إحصائيات الوكلاء العكسيين التي تستخدمها مواقع الويب
إحصائيات البروكسيات العكسية التي تستخدمها المواقع (المصدر: W3Techs.com)

من بين 17٪ من مواقع الويب التي تستخدم وكيلًا عكسيًا (مذكور أعلاه) ، ستلاحظ أن معظمها عبارة عن شبكات CDN. ذلك لأن معظم الوكلاء العكسيين يخفون وجودهم افتراضيًا كإجراء وقائي. وبالتالي ، لا يمكنك الاعتماد على خدمات مراقبة مواقع الويب مثل W3Techs للعثور على البروكسيات العكسية الأكثر شيوعًا.

من خلال بحثنا وخبرتنا ، فإن أكثر الوكلاء العكسيين شيوعًا المستخدمة اليوم هي:

Nginx

Nginx هو خادم ويب مفتوح المصدر يمكن أن يعمل أيضًا كخادم وكيل عكسي. بصرف النظر عن استخدامه لاستضافة مواقع الويب ، فهو أيضًا أحد أكثر الحلول المستخدمة على نطاق واسع للوكيل العكسي وحلول موازنة التحميل. وفقًا لـ Netcraft ، كان أكثر من 479 مليون خادم ويب يستخدمون Nginx في ديسمبر 2019 ، مما يجعلها رائدة في حصة سوق خوادم الويب.

حصة سوق خادم الويب لجميع المواقع حسب Netcraft
الحصة السوقية لخادم الويب لجميع المواقع (المصدر: Netcraft)

يوفر Nginx جميع مزايا الوكيل العكسي التي تمت مناقشتها أعلاه ، بالإضافة إلى المزيد. يعمل على تحسين أداء الويب والأمان والموثوقية وقابلية التوسع. يمكنك تكوين Nginx باستخدام ملف التكوين الخاص به ، والذي يمكن إعادة تحميله أيضًا. في Kinsta ، يعد وكيل Nginx العكسي أحد الإضافات المميزة العديدة التي يمكنك استخدامها.

ولكن يمكنك أيضًا استخدام Nginx Plus ، وهو عرض تجاري ، للوصول إلى خيارات التكوين القائمة على API وغيرها من الميزات المناسبة لمواقع الويب الخاصة بالشركات الكبيرة.

تدعم Kinsta جميع مواقعها الإلكترونية باستخدام Nginx. لقد تم تصنيفها في حالة استضافة الويب من الدرجة الأولى في Review Signal في كل فئة تنافس فيها. بعض الشركات الكبرى الأخرى التي تستخدم Nginx هي MaxCDN و Cloudflare و Netflix.

يعد إعداد Nginx كوكيل عكسي أساسي أمرًا بسيطًا. يوفر لك Nginx أيضًا توجيهات مختلفة لتخصيص الخادم الوكيل العكسي للخادم وفقًا لمتطلباتك. سنناقش كيفية القيام بذلك في قسم لاحق. إذا كنت أحد عملاء Kinsta ، فستتعلم أيضًا كيفية استخدام وكيل عكسي لمواقع الويب المستضافة مع Kinsta في نفس القسم.

الورنيش

الورنيش هو وكيل HTTP عكسي مفتوح المصدر مع محرك ذاكرة تخزين مؤقت مدمج. إنه مصمم بشكل أساسي لمواقع الويب عالية الحركة التي تقدم محتوى ديناميكيًا. يمكنك أيضًا استخدام Varnish كموازن تحميل ، وجدار حماية لتطبيق الويب (WAF) ، وخادم مصادقة وتفويض.

يعمل على جميع الإصدارات الحديثة من Linux و FreeBSD ، حيث يتم استخدامه بشكل أساسي كواجهة لخوادم الويب Nginx أو Apache. تتيح لك لغة تكوين الورنيش القوية والمرنة للغاية (VCL) الخاصة بـ Varnish تعريف ميزات متنوعة مثل التعامل مع طلبات HTTP والتخزين المؤقت والاتصال بخادم ويب واحد أو أكثر.

لهذا السبب ، تستخدم العديد من شبكات CDN الورنيش كأساس رئيسي لتقديم المحتوى بسرعة.

يدعم Varnish أيضًا Edge Side Includes (ESI) ، وهي لغة تساعدك على إعادة استخدام أقسام صفحة ويب واحدة في صفحات ويب أخرى. إذا كان موقع الويب الخاص بك يستخدم الكثير من المحتوى المتكرر في صفحات مختلفة ، فيمكن أن تساعدك ESI في تسريع أوقات تحميل صفحات موقعك عن طريق التخزين المؤقت للأقسام المستخدمة بشكل متكرر.

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

خادم المرور اباتشي

Apache Traffic Server هو خادم وكيل مفتوح المصدر للتخزين المؤقت. إنه مشهور بميزاته السريعة والقابلة للتطوير. لقد كان منتجًا تجاريًا تم تطويره بواسطة Yahoo! منذ فترة طويلة ، لكنهم جعلوه مفتوح المصدر وتبرعوا به لمؤسسة أباتشي للصيانة.

تستخدم العديد من شبكات المحتوى الرئيسية وشبكات CDN مثل Comcast و Akamai و LinkedIn و Yahoo و Apple Apache Traffic Server لتشغيل تقنيتها.

يمكنك أيضًا استخدام خادم Apache HTTP ( Apache httpd ) ، وهو البرنامج الخفي لخادم HTTP ، لإعداد وكيل عكسي على خادم الويب الخاص بك. بصرف النظر عن العمل كخادم ويب أساسي ، فإنه يساعدك أيضًا على تقديم محتوى ثابت وديناميكي للمستخدمين. ستتعلم كيفية إعداد Apache كوكيل عكسي لاحقًا في هذه المقالة.

HAProxy

HAProxy هو وكيل عكسي مفتوح المصدر وموازن تحميل. إنه مصمم للتكامل مع معظم هياكل خوادم الويب الحالية ، بما في ذلك توزيعات Linux والأنظمة الأساسية السحابية. على غرار Nginx ، يستخدم HAProxy نموذج إدخال / إخراج يعتمد على الأحداث ويدعم تقسيم الطلبات عبر عمليات عاملة متعددة.

بالنسبة لطلبات HTTP ، يعمل HAProxy بشكل جيد للغاية حتى في ظل الأحمال الثقيلة. تستخدم بعض مواقع الويب الأكثر حركة مرورًا على الإنترنت مثل Airbnb و Reddit و Instagram و Stack Overflow و Tumblr و GitHub و Imgur HAProxy لتقديم مواقع الويب الخاصة بهم بكفاءة.

مناقشة كيفية تنفيذ HAProxy خارج نطاق هذه المقالة ، ولكن يمكنك الرجوع إلى وثائقهم لفهم كيفية عمله.

ملاحظة: Traefik و Envoy هما بديلان آخران مفتوحان المصدر لـ HAProxy. كلاهما وكلاء عكسي عالي الأداء وموازن تحميل مع العديد من الميزات المتقدمة.

بعض البروكسيات العكسية الشائعة الأخرى هي AWS Elastic Load Balancer و GLBC و DigitalOcean Load Balancer و Google Cloud Load Balancer. للحصول على قائمة شاملة بأهم الوكلاء العكسيين وموازنات التحميل المستخدمة اليوم ، يمكنك التحقق من Stackshare.io.

الوكيل العكسي: حالات الاستخدام لمواقع WordPress

هناك ثلاث حالات استخدام بشكل أساسي لاستخدام وكيل عكسي لمواقع WordPress ، بما في ذلك المواقع المستضافة في Kinsta.

تحميل موقع رئيسي مقابل موقع وكيل
تحميل "موقع رئيسي" مقابل "موقع وكيل"

سنستخدم Nginx فقط في هذا المثال ، لأنه الوكيل العكسي الأكثر شيوعًا المستخدم لمواقع WordPress اليوم. لكن المبادئ الأساسية نفسها ستنطبق على الوكلاء العكسيين الآخرين.

غالبًا ما يكون من الصعب تثبيت الوكلاء العكسيين وتكوينهم ودعمهم. لهذا السبب ، تقدم Kinsta اشتراكًا إضافيًا شهريًا بقيمة 50 دولارًا لكل وكيل عكسي تحتاج إلى مساعدة في الإعداد. يمكنك التواصل مع فريق دعم Kinsta للحصول على مزيد من التفاصيل.

1. المواقع الرئيسية والوكيل المستضافة على نفس الخادم

إذا تمت استضافة كل من الموقع الرئيسي والموقع الوكيل على نفس الخادم ، فيمكن تشغيل الموقع الرئيسي على تثبيت WordPress ، بينما يقوم تثبيت WordPress منفصل بتشغيل الموقع الوكيل.

نظرًا لأنه سيكون لديك حق الوصول إلى كل من المواقع وخادم الويب المشترك الخاص بها ، يمكنك إعداد قواعد الوكيل العكسي للموقع الرئيسي ، ثم تكوين الموقع الوكيل للتحميل من الوكيل العكسي.

إذا كنت تستضيف كلا الموقعين في Kinsta ، فيمكنك التواصل مع فريق دعم Kinsta واطلب منهم إعداد الوكيل العكسي لك. إليك الإجراء الذي يجب عليك اتباعه:

  • تأكد من استضافة كل من الموقع الرئيسي والموقع الوكيل في Kinsta. إذا لم يكن الأمر كذلك ، فيمكنك ترحيل كلا الموقعين إلى بيئة Kinsta ، إما يدويًا أو عن طريق إرسال طلب ترحيل.
  • افتح بطاقة دعم وقدم لفريق دعم Kinsta وصفًا واضحًا لتكوين المجال. سأستغرق يوم عمل تقريبًا لإعداد الوكيل العكسي.
  • سيقوم Kinsta بإعداد قواعد الوكيل العكسي ذات الصلة على الموقع الرئيسي وتكوين الموقع الوكيل للتحميل عبر الوكيل العكسي.

فيما يلي توجيهات Nginx المعيارية للخادم الوكيل العكسي التي يستخدمها Kinsta لتحميل موقع دليل فرعي عبر وكيل عكسي:

 location ^~ /subfolder/ { proxy_pass http://subfolder.domain.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }

في الكود أعلاه ، تحتاج إلى استبدال /subfolder/ placeholder باسم الدليل الفرعي الفعلي (على سبيل المثال /blog/ ، /shop/ ). بالإضافة إلى ذلك ، يجب أن يتطابق النطاق الفرعي http://subfolder.domain.com مع عنوان URL المستخدم لتوجيه الخادم الوكيل العكسي نحو الموقع الوكيل.

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

  • قم بإنشاء دليل فرعي في المسار الذي تم تحميل الموقع الوكيل منه. يتم نقل جميع ملفات موقع الويب الوكيل إلى هذا الدليل الفرعي.
  • قم بتحديث ملفات تكوين خادم الويب لتحديد الدليل الفرعي الجديد كدليل جذر للموقع الوكيل. بالإضافة إلى ذلك ، تحتاج إلى إضافة قاعدة إعادة الكتابة لإزالة الدليل الفرعي من عنوان URI الخاص بالطلب لكل طلب وارد.
  • قم بتحديث كافة عناوين URL في قاعدة بيانات الموقع الوكيل لمطابقة عناوين URL للمواقع الحية (على سبيل المثال ، example.com/blog ).
  • قم بتحرير wp-config.php الخاص بالموقع الوكيل باستخدام تعريف $_SERVER['HTTP_HOST'] ، مع توجيهه إلى عنوان URL الخاص بالموقع الرئيسي.
  • إذا كنت تستخدم شهادة SSL ، فأنت بحاجة إلى تحديد قواعد صارمة في wp-config.php لتجنب حلقات إعادة التوجيه.

ملاحظة: لا يمكن لموقع وكيل إنشاء عناوين URL التي تكرر نفس الدليل الفرعي الذي يتم تحميل الموقع الوكيل تحته. على سبيل المثال ، لا يمكن لموقع وكيل على example.com/blog إنشاء صفحة أو دليل على example.com/blog/blog .

2. فقط الموقع الوكيل المستضاف على الخادم الخاص بك

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

هل تحتاج إلى استضافة سريعة وآمنة وصديقة للمطورين لمواقعك؟ تم تصميم Kinsta مع وضع مطوري WordPress في الاعتبار ويوفر الكثير من الأدوات ولوحة تحكم قوية. تحقق من خططنا

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

لاستضافة موقعك الوكيل باستخدام Kinsta ، أضف مجالًا إلى الموقع والذي سيشير إلى الوكيل العكسي. عادةً ما يناسب النطاق الفرعي هذا الغرض (مثل blog.example.com ) لتحميل الموقع الوكيل عبر رابط دليل فرعي (على سبيل المثال ، example.com/blog ).

بعد إعداد موقعك الوكيل على Kinsta ، يمكنك الاتصال بفريق دعم Kinsta لتهيئة الموقع الوكيل للتحميل عبر وكيل عكسي. في هذا الوقت ، سيطلب فريق الدعم لدينا عنوان IP الحقيقي لخادمك لإكمال عملية الإعداد بطريقة تحسب الزيارات بشكل صحيح. إذا لم تتمكن من توفير عنوان IP ثابت بسبب قيود IP الديناميكية من مزودين معينين (مثل AWS CloudFront) ، فسيتم تحويل خطتك إلى خطة قابلة للمقارنة قائمة على النطاق الترددي بدلاً من ذلك.

أخيرًا ، يقع إعداد الوكيل العكسي على الخادم الخاص بك خارج نطاق دعم Kinsta حيث لا يمكن إلا لمسؤول الخادم العناية به.

3. فقط الموقع الرئيسي المستضاف على الخادم الخاص بك

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

ستمنحك استضافة موقعك الرئيسي في Kinsta إمكانية الوصول إلى فريق دعم Kinsta. يمكنك رفع بطاقة دعم معهم لإضافة قواعد الوكيل العكسي القياسية المذكورة سابقًا في هذه المقالة. يمكنك أيضًا إضافة أي تخصيصات إضافية إلى هذه القواعد إذا لزم الأمر.

في هذا السيناريو ، أنت مسؤول مسؤولية كاملة عن تكوين الموقع الوكيل لتحميله بشكل صحيح عبر الوكيل العكسي.

كيفية إعداد Nginx كوكيل عكسي

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

اعتمادًا على نظام تشغيل خادم الويب الخاص بك ، يمكنك تثبيت Nginx بشكل مختلف. بالنسبة لتوزيعات Linux ، يمكنك استخدام حزم Nginx المختلفة بناءً على إصدار توزيع Linux الخاص بك.

في المثال أدناه ، قمنا بتثبيت الموقع الأساسي على example.com domain name ، بينما تم تثبيت موقع WordPress الوكيل على النطاق الفرعي blog.domain.com . كلاهما مدعوم من Apache على خادم ويب يعمل على Ubuntu 18.04. سنقوم بتثبيت وتهيئة Nginx كوكيل عكسي على الخادم الرئيسي.

للبدء ، قم بالوصول إلى محطة الخادم الخاصة بك عبر SSH. ثم استخدم الأمر apt-get لتحديث قائمة حزم التوزيع الخاصة بك وتثبيت Nginx على خادم الويب الخاص بك.

 sudo apt update sudo apt install nginx

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

 sudo nano /etc/nginx/sites-available/example.com.conf

ثم قم بتعيين توجيهات Nginx لإعادة توجيه الطلبات إلى Apache عن طريق إضافة server {...} وكتل location :

 server { listen 80; server_name example.com www.example.com; index index.php; root /var/www/example.com/public # fallback for index.php location / { try_files $uri $uri/ /index.php?$query_string; }location /blog { proxy_pass http://blog.domain.com;proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; # Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Proxy timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; }

في الكود أعلاه ، أحدد رابطًا فرعيًا example.com/blog والذي سيقدمه خادم Apache. تأكد من استخدام عنوان IP العام (أو عنوان URL) لموقع الويب الوكيل الخاص بك في توجيه proxy_pass . في حالتي ، يتم استضافة موقع الويب الوكيل الخاص بي على النطاق الفرعي blog.domain.com .

ملاحظة: تأكد من تثبيت موقع الويب الوكيل وجاهز لتقديمه قبل إجراء أي تغييرات.

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

احفظ ملف المضيف الظاهري. ثم قم بتنشيط المضيف الظاهري الجديد عن طريق إنشاء ارتباط رمزي للملفات المسماة example.com.conf في كل من الدلائل /etc/nginx/sites-available و /etc/nginx/sites-enabled .

 sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

بعد ذلك ، اختبر Nginx بحثًا عن أي أخطاء في التكوين.

 sudo nginx -t

إذا لم تكن هناك أخطاء ، أعد تحميل Nginx لفرض التغييرات.

 sudo systemctl reload nginx

لقد نجحت في إعداد Nginx للعمل كوكيل عكسي الآن. لتأكيد ذلك ، يمكنك استخدام الدالة phpinfo () للتحقق من متغيرات PHP التي تم تحميلها عند زيارة موقعك الوكيل.

ضمن SERVER_SOFTWARE و DOCUMENT_ROOT PHP ، سترى أن Apache يخدم هذا المجال على الواجهة الخلفية. لكن HTTP_X_REAL_IP و HTTP_X_FORWARDED_FOR PHP تؤكد أن Nginx تم استخدامه كوكيل عكسي لإعادة توجيه الطلبات.

يمكنك تسريع خدمة موقع WordPress الخاص بك عبر Nginx باستخدام الوحدتين fastcgi_cache و ngx_cache_purge. بينما ستقوم الوحدة الأولى بتخزين موقعك مؤقتًا ، ستقوم الوحدة الثانية تلقائيًا بمسح ذاكرة التخزين المؤقت بناءً على أحداث معينة (مثل نشر أو تحرير منشور / صفحة WordPress).

يمكنك استخدام المكون الإضافي Nginx Cache Controller WordPress للتحكم في ذاكرة التخزين المؤقت للخادم الوكيل لـ Nginx مباشرة من لوحة تحكم مسؤول WordPress. إذا كنت تستخدم تثبيت WordPress Multisite ، فيمكنك استخدام المكون الإضافي Nginx Helper للقيام بنفس الشيء.

راجع وثائق Nginx الرئيسية ودليل إعداد Nginx WordPress للحصول على نظرة عامة مفصلة حول كيفية العمل مع Nginx و WordPress.

كيفية إعداد Apache كوكيل عكسي

قبل أن تبدأ ، تأكد من أن لديك موقعين على الويب قيد التشغيل على example.com و blog.domain.com . قد يكون موقع الويب الأول موقع WordPress وقد لا يكون ، ولكن يجب أن يكون الموقع الثاني موقع WordPress حيث يتم استخدامه بشكل أساسي لتحميل مدونة المجال الجذر على example.com/blog رابط الدليل الفرعي.

ابدأ في تكوين Apache عن طريق فتح محطة الخادم الخاص بك عبر SSH وتمكين وحدة وكيل Apache.

 sudo a2enmod proxy proxy_http ssl

سيؤدي تشغيل الأمر أعلاه على الأرجح إلى إعادة تشغيل Apache لإعادة تحميل التوجيهات المحددة حديثًا.

بعد ذلك ، قم بتحرير ملف المضيفات الظاهرية لخادمك الرئيسي لإنشاء وكيل عكسي. إليك الكود الذي تريد إضافته:

 <VirtualHost *> DocumentRoot /var/www/app/public SSLProxyEngine On ProxyRequests off ProxyPass /blog http://blog.domain.com ProxyPassReverse /blog http://blog.domain.com </VirtualHost>

سيقوم توجيه ProxyPass بإنشاء وكيل عكسي للمسارات المحددة ، بينما سيعترض التوجيه ProxyPassReverse رؤوس استجابة HTTP المرسلة عبر هذا الوكيل العكسي ويعيد كتابتها لمطابقة خادم Apache.

بعد حفظ الملف ، تحتاج إلى تحرير wp-config.php الخاص بك عن طريق إضافة الكود التالي قبل السطر الذي يطلب منك التوقف عن التحرير.

 # ProxyPass Settings # overrides the variables below to ensure that any # request to /blog/* subdirectory is taken care of properly $_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI']; $_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME']; $_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

أخيرًا ، تحتاج إلى تحديث قاعدة بيانات موقع WordPress الخاص بك لإضافة قيم التكوين لرابط الدليل الفرعي /blog . يمكنك القيام بذلك عن طريق تشغيل استعلام SQL التالي:

 UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

يجب أن تكون الآن قادرًا على زيارة https://www.example.com/blog URL واستضافة موقع WordPress الخاص بك على http://blog.domain.com تحميل النطاق الفرعي دون تغيير عنوان URL الخاص به. يمكنك الاستمرار في استخدام WordPress كالمعتاد لتصفح موقعك وكتابته وتحريره وإدارته.

حدود الوكيل العكسي

  • يمثل الوكيل العكسي خطرًا أمنيًا كبيرًا حيث يمكنه قراءة وتغيير كل حركة المرور التي تمر عبره. إذا كنت تقوم بتمرير حركة مرور HTTPS عبر الوكيل العكسي ، فإنه يحتاج إلى فك تشفير وإعادة تشفير البيانات المارة. هذا يعني أنه يجب أن يمتلك المفاتيح الخاصة لشهادة SSL / TLS. وبالتالي ، إذا كان بإمكان أي طرف ضار اختراق وكيلك العكسي ، فيمكنه تسجيل كلمات المرور وحقن البرامج الضارة في مواقع الويب الخاصة بك.
  • إذا لم تتمكن أنت أو المستخدمون لديك من الوصول إلى الخادم الرئيسي مباشرةً ، فإن استخدام وكيل عكسي يمكن أن يؤدي إلى نقطة فشل واحدة. على سبيل المثال ، إذا كنت تستخدم وكيلًا عكسيًا كواجهة لخدمة مجالات متعددة ، فإن انقطاعه يمكن أن يؤدي إلى عدم اتصال جميع المجالات في وقت واحد.
  • إذا كنت تعتمد على وكيل عكسي تابع لجهة خارجية (مثل Cloudflare) ، فأنت تقوم بتسليم المعلومات الحساسة لموقعك إليهم. بينما يتم الوثوق بهم ، لا يمكنك التنبؤ بما قد يؤدي إليه.
  • يمكن أن تؤدي استعادة النسخ الاحتياطية أو دفع مواقع التدريج مباشرة على مواقع الويب التي يتم تحميلها عبر وكيل عكسي إلى توقف الموقع الوكيل عن التحميل بشكل صحيح.

الاختيار بين CDN والوكيل العكسي

تعد شبكات CDN شكلًا متقدمًا من الوكيل العكسي مع رعاية الطرف الثالث لمعظم عمليات التكوين والصيانة. يمكنهم توفير مزايا أداء مذهلة لموقع WordPress الخاص بك بجهد بسيط من نهايتك.

لا يقتصر الأمر على تخزين محتوى شبكات CDN مؤقتًا وتقديمه للمستخدمين بسرعة ، بل يقلل أيضًا من الحمل على الخوادم الأصلية ، ويقلل من تكاليف النطاق الترددي ، ويوفر طبقة إضافية من الأمان ، ويعزز مُحسّنات محرّكات البحث لموقعك ، ويساعدك على توسيع نطاق موقعك على الويب بشكل أفضل.

ستلاحظ أن معظم المزايا التي توفرها شبكات CDN هي نفسها التي توفرها البروكسيات العكسية. لذا ، هل يجب عليك اختيار CDN بدلاً من وكيل عكسي ، أم العكس؟

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

هل تريد معرفة المزيد حول خوادم الوكيل العكسي؟ تتناول هذه المقالة ... كيف تعمل ، الفوائد الرئيسية ، كيف يمكنك استخدامها لتسريع وتأمين موقع WordPress الخاص بك. انقر للتغريد

ملخص

WordPress مرن للغاية. يمكنك استخدامه كمدونة أو موقع للتجارة الإلكترونية أو حتى نظام إدارة التعلم. في معظم الحالات ، يمكنك تخصيص WordPress ليناسب متطلباتك الفريدة.

ومع ذلك ، قد تضطر أحيانًا إلى استخدام مجال منفصل أو خادم ثانوي لاستضافة موقع إضافي. كما تمت مناقشته سابقًا ، قد يكون ذلك بسبب استخدام مجموعات تكنولوجية مختلفة لموقع مؤسسة كبيرة أو إطلاق مدونة WordPress لموقع موجود مسبقًا غير WordPress.

A reverse proxy can help in both these cases, helping you get the most out of WordPress without giving up the main website and starting over.