اباتشي ونجينكس. مرتبطة بسلسلة واحدة

كيف يتم تنفيذ مجموعة Apache & Nginx في Timeweb

بالنسبة للعديد من الشركات، يعد Nginx + Apache + PHP مزيجًا نموذجيًا وشائعًا للغاية، وTimeweb ليس استثناءً. ومع ذلك، فإن فهم كيفية تنفيذها بالضبط يمكن أن يكون مثيرًا للاهتمام ومفيدًا.

اباتشي ونجينكس. مرتبطة بسلسلة واحدة

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

الإعدادات الأساسية أباتشي يتم إجراؤها في ملفات التكوين الخاصة بـ Apache نفسه، ويتم إجراء إعدادات مواقع العملاء من خلالها ملف .htaccess. .htaccess هو ملف تكوين يمكن للعميل من خلاله تكوين قواعد وسلوك خادم الويب بشكل مستقل. سيتم تطبيق هذا الإعداد خصيصًا على موقعه. على سبيل المثال، بفضل وظيفة Apache، يمكن للمستخدمين تغيير وضع التشغيل داخل نفس إصدار PHP من mod_php إلى mod_cgi؛ يمكنك إعداد عمليات إعادة التوجيه، وتحسين محركات البحث، وعنوان URL المناسب، وبعض الحدود لـ PHP.

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

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

ميزات حزمة Apache & Nginx في Timeweb

تنفذ استضافتنا الافتراضية نظامي تشغيل رئيسيين لـ Apache وNginx: مشتركة ومخصصة.

مخطط مشترك

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

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

اباتشي ونجينكس. مرتبطة بسلسلة واحدة
مخطط مشترك

مخطط مخصص

يتطلب المخصص المزيد من الموارد، وبالتالي فإن التعريفة الخاصة به تكون أكثر تكلفة للعملاء. في المخطط المخصص، يحصل كل عميل على Apache المنفصل الخاص به. الموارد هنا محجوزة للعميل، ويتم تخصيصها حصريًا. كيف يعمل: هناك عدة إصدارات من PHP على الخادم. نحن ندعم الإصدارات 5.3، 5.4، 5.6، 7.1، 7.2، 7.3، 7.4. لذلك، يتم إطلاق Apache الخاص به لكل إصدار من PHP.

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

منطقة أمنة. إعداد المناطق في Nginx

سابقًا، بالنسبة لـ Nginx، استخدمنا العديد من مناطق (مناطق) الذاكرة المشتركة - كتلة خادم واحدة لكل مجال. يتطلب هذا الإعداد الكثير من الموارد، حيث يتم إنشاء منطقة منفصلة لكل موقع. ومع ذلك، في إعدادات Nginx، تكون معظم المواقع من نفس النوع، لذا يمكن وضعها في منطقة واحدة بفضل استخدام توجيهات الخريطة في الوحدة. ngx_http_map_module، والتي تسمح لك بتحديد المراسلات. على سبيل المثال، لدينا قالب منطقة يجب علينا توفير المتغيرات فيه: المسار إلى الموقع، إصدار PHP، المستخدم. وبالتالي، تم تسريع إعادة قراءة تكوين Nginx، أي إعادة التحميل.

أدى هذا التكوين إلى توفير موارد ذاكرة الوصول العشوائي (RAM) بشكل كبير وتسريع Nginx.

إعادة التحميل لن تعمل!

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

لقد تخلصنا من عمليات إعادة التحميل عن طريق إنشاء تكوينات ديناميكية. شكرا ل MPM- إيتك (وحدة Apache)، يتم تشغيل كل عملية كمستخدم منفصل، مما يزيد من مستوى الأمان. تسمح لك هذه الطريقة بنقل البيانات الخاصة بالمستخدم وdocument_root الخاص به من Nginx إلى Apache2. وبالتالي، لا يحتوي Apache على تكوينات الموقع، بل يستقبلها ديناميكيًا، ولم تعد هناك حاجة إلى عمليات إعادة التحميل.

اباتشي ونجينكس. مرتبطة بسلسلة واحدة
تكوين المخطط المشترك

ماذا عن دوكر؟

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

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

تعمل Timeweb على تشغيل حوالي 500 موقع ويب. نحن نتحمل مسؤولية كبيرة ولا نجري تغييرات فورية وغير مبررة على البنية المعقدة. تعتبر مجموعة Apache & Nginx موثوقة وتم اختبارها عبر الزمن. ونحن بدورنا نحاول تحقيق أقصى قدر من الأداء من خلال التكوينات الفريدة.

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

المصدر: www.habr.com

إضافة تعليق