مقدمة
Benpian بعض الملاحظات تعلمت إنجن إكس، والمحتويات الرئيسية حول إنجن إكس تحتاج بعض الفهم للمفاهيم الأساسية.
ثم استكشاف إنجن إكس هيكل وحدات تنظيمية، فضلا عن تصنيف كل وحدة، والعمل، والمسؤوليات والتعليمات ذات الصلة المقدمة.
الرئيسية تحقيق الأهداف التالية:
حول إنجن إكس
خادم إنجن إكس HTTP هو تصميم موجهة نحو الأداء، ويمكن عكس وكيل HTTP، HTTPS وذات الصلة الإلكتروني رابط بروتوكول (SMTP، POP3، IMAP). ويوفر موازنة التحميل و HTTP التخزين المؤقت.
وهي مصممة على الاستفادة الكاملة من طراز حدث غير متزامن، يقطع سياق جدولة النفقات العامة، وتحسين التزامن الخادم.
في تصميم وحدات، وتوفر وحدة ثروة من وحدات طرف ثالث.
هكذا إنجن إكس، مع هذه العلامات: "متزامنة" "الأحداث" "وحدات"، "عالية الأداء" "التزامن عالية" "وكيل عكسي" "تحميل موازنة"
المفهوم الأساسي
عملية نموذج
عملية إنجن إكس هو استخدام النموذج التقليدي "ماستر العمالي".
إنجن إكس بعد بدء، سوف تكون هناك عملية رئيسية والعمليات المنفذة متعددة.
يستخدم عملية رئيسية في المقام الأول لإدارة العملية المنفذة، وتشمل: تلقي إشارة من الخارج، يتم إرسال إشارة إلى كل العملية المنفذة مراقبة حالة تشغيل العمليات المنفذة، عندما يتم إنهاء العملية المنفذة (ظروف استثنائية)، فإنه سيتم تلقائيا إعادة بدء العملية المنفذة جديدة .
العملية المنفذة اساسا للتعامل مع أحداث الشبكة الأساسية عبر العمليات المنفذة متعددة متساوية، فهي نفس البطولة من طلب العميل، وعمليات مستقلة عن بعضها البعض بين. وتجدر الإشارة إلى أن كل عامل فقط موضوع الرئيسي، ما يسمى "ترابط واحد."
لا يمكن معالجة الطلب وعامل العملية، عملية عامل، وعمليات أخرى لا يمكن معالجة الطلب.
عدد العمليات المنفذة التي يمكن تعيينها، وعادة ما تقام مع نفس العدد آلة الأساسية وحدة المعالجة المركزية، لأنه لا يوجد نموذج عملية ونموذج التعامل مع الحدث إنجن إكس لا ينفصلان. إنجن إكس أجل الاستفادة تأخذ أفضل من خصائص متعددة النوى، والعروض تقارب وحدة المعالجة المركزية خيارات ملزمة، فإننا يمكن أن يكون عملية معينة ملزمة لجوهر واحد، حتى لا جلب كمية من الفشل لأن عملية التبديل. أكثر عدد من العمال، لن تؤدي إلا إلى عمليات موارد وحدة المعالجة المركزية المنافسة.
إنجن إكس نموذج عملية بابوا نيو غينيا
حدث نموذج
إنجن إكس لهذا الحدث ب "حجب غير متزامنة" الطريقة.
غير المتزامن وغير المتزامن غير مؤمن وغير مؤمن هما مفهومان مختلفان، الرئيس السابق لمزيد من التطبيقات، التي من شأنها أن المزيد من وحدة المعالجة المركزية:
إنجن إكس في "عدم عرقلة غير متزامن" واسطة، تحديدا إلى استدعاء النظام، هو نظام مثل حدد / استطلاع / epoll / المكالمات kqueue. أنها توفر آلية بحيث يمكنك مراقبة أحداث متعددة في نفس الوقت، ويتم حظر المكالمات، ولكن يمكنك تعيين المهلة ضمن فترة المهلة، إذا كان هناك حدث مستعد للعودة.
epoll ندرك حول الحدث على لينكس، ولكن نموذج الحدث kqueue يشبه epoll على استخدام اكبر برهان أو فري نظام التشغيل.
وبالتالي فإن التركيز على نموذج epoll شرح:
الحدث epoll نموذج بابوا نيو غينيا
هذا البرنامج هو لينكس، والأكثر كفاءة I / O آلية إعلام الحدث، عند دخول مركز الاقتراع لم تحقق إذا كان الحدث I / O، سوف تذهب إلى النوم، وسوف يستيقظ حتى الحدث. صحيح أن استخدام طريقة الاستدعاء إعلام الحدث، بدلا من عبور الاستعلام، لذلك سوف نضيع وحدة المعالجة المركزية، وارتفاع كفاءة.
وكيل العكس
لفهم "وكيل العكسي"، عليك أولا أن تعرف ما هو "الملقم الوكيل" و "وكيل إلى الأمام"
الملقم الوكيل
في الشبكة، ويبدأ العميل طلب والوصول إلى الموارد على جانب الملقم. لا تأسيس قناة مباشرة بينهما، ولكن إلى الأمام الخادم الوكيل.
سيقوم الملقم الوكيل أنه شبكة من وسائل الإعلام على شبكة الإنترنت الحصول على الموارد إلى العميل ذات الصلة.
نشير عادة إلى وكلاء يشير عموما إلى "وكيل إلى الأمام" نسبة إلى عميل لل.
على سبيل المثال، وربط الشبكات الخاصة الافتراضية، عندما أزور جوجل، بدأت العميل طلب مساعدة VPN، VPN قدما في طلب إلى خوادم Google، وجوجل والجزء الخلفي استجابة إلى العميل. هذه العملية، VPN بمثابة دور ك "الملقم الوكيل إلى الأمام" هو.
بابوا نيو غينيا الوكيل
وكيل العكس
و "وكيل إلى الأمام" مختلفة "، وكيل عكسي" حجة للجانب الملقم. طلب العميل إلى الملقم الوكيل، الملقم الوكيل الأمام الطلب، اعتمادا على طلب العميل إلى ملقم آخر، وهذه العملية "تحميل موازنة"، كما تحدث نفس الطلب اثنين، وسوف تحال إلى مختلف تماما الوضع الخادم.
"وكيل عكسي" هو فرضية "موازنة" لتحقيقه، لأن الملقم الوكيل للطلب القرار، وقدرة التوزيع طلب من أجل تحقيق الموازنة، وتقليل الحمل على كل خادم.
استخدام "وكيل العكسي"، بالإضافة إلى تحميل موازنة، كما يمكن تنفيذها، مثل: تشفير SSL، ثابت التخزين المؤقت المحتوى، ضغط GZIP، تحميل بطيء والأمن وغيرها من المهام
بابوا نيو غينيا عكس وكيل
تحميل موازنة
موازنة (موازنة الحمل) هو عبارة عن شبكة الكمبيوتر المستخدمة لتوزيع الحمل عبر ملقمات متعددة من أجل تحقيق الاستخدام الأمثل للموارد لتحقيق أقصى قدر من الإنتاجية، وتقليل زمن الاستجابة، مع تجنب الإفراط في الكائن الواردة.
إن تعددية مكون ملقم موازنة مع لتحل محلها مكون واحد، ويمكن تحسين الموثوقية من خلال التكرار. خدمات موازنة التحميل يمكن تنفيذها في مجال البرمجيات والأجهزة.
تحميل موازنة توزيع، عادة عدة مجموعات من خوارزميات للتعامل مع قضايا التوزيع.
اتصال اتصال
يتم توصيل اتصال TCP إلى حزمة في إنجن إكس، بما في ذلك اتصالات مأخذ، أحداث قراءة، كتابة الأحداث. الاتصال باستخدام حزمة إنجن إكس، يمكننا بسهولة معالجتها باستخدام الأشياء اتصال إنجن إكس ذات الصلة، مثل تأسيس اتصال، إرسال واستقبال البيانات.
تم بناء على طلب تجهيز HTTP في إنجن إكس على اتصال، وذلك ليس فقط لخادم الويب إنجن إكس، ويمكن أيضا بمثابة خادم البريد.
وبطبيعة الحال، وذلك باستخدام إنجن إكس الصدد تقدم، يمكننا التعامل مع أي خدمات للجهة الخلفية.
العدد الأقصى من الاتصالات
في إنجن إكس، فإن كل عملية يكون لها حد أقصى لعدد الاتصالات، والحد من الحد الأعلى للفد نظام ليست هي نفسها.
في نظام التشغيل، من خلال ulimit -n، يمكننا الحصول على فد أقصى عدد من عملية التي يمكن فتحها، وهي nofile، لأن كل اتصال سوف تأخذ بها فد مأخذ، ولذلك فإن هذا سيحد من أكبر عدد ممكن من الاتصالات عمليتنا، بطبيعة الحال، فإنه سوف تؤثر بشكل مباشر على عدد أقصى من البرامج المتزامنة نتمكن من دعم، عندما تم استنفاد فد، ومن ثم إنشاء مأخذ توصيل، ستفشل.
إنجن إكس كتبها worker_connectons الإعداد لتعيين الحد الأقصى لعدد الاتصالات في دعم العملية. إذا كانت قيمة أكبر من nofile، ثم عدد أقصى الفعلي للاتصالات هو nofile، إنجن إكس تحذير.
إنجن إكس في تحقيق، من خلال تجمع الاتصال لإدارة ولها كل عملية العامل تجمع اتصال منفصل، حجم تجمع الاتصال هو worker_connections. حفظ تجمع الاتصال هنا الذي هو في الواقع لا علاقة صحيح، انها مجرد هيكل مجموعة من worker_connections حجم ngx_connection_t. و، إنجن إكس يمكن الحفاظ على قائمة بجميع free_connections مجانا ngx_connection_t، كل الحصول على اتصال، للحصول على اتصال من قائمة مرتبطة حرة واستنفدت، ثم وضع مرة أخرى داخل القائمة اتصال الخمول.
لذلك، يمكن إنجن إكس إنشاء عدد أقصى الاتصالات: worker_connections * worker_processes،
إذا وعندما إنجن إكس كوكيل عكسي ثم طلب إنجن إكس لطلب لإنشاء العميل والخادم، وبالتالي فإن العدد الأقصى من الاتصالات هو: worker_connections * worker_processes / 2
طلب طلب
في إنجن إكس نشير إلى http طلبات محددة إلى بنية البيانات إنجن إكس ngx_http_request_t.
هو التغليف طلب المتشعب، إنجن إكس تحليل طلب لتخزين البيانات المرتبطة استجابة الانتاج ngx_http_request_t.
طلب HTTP التي تحتوي على خط طلب، رأس طلب، طلب والرد على الخط، والاستجابة الأولى، والجسم استجابة.
شبكة العام طلب المعالجة:
وعندما إنجن إكس معالجة الطلب سوف يكون هناك بعض الاختلافات الطفيفة، على سبيل المثال، عندما طلب هو اكتمال القراءة الأولى، فإنها تبدأ في معالجة الطلب.
معالجة إنجن إكس الطلب
إنجن إكس إجراء معالجة التجريد من الطلب:
بنية البيانات الأساسية
إنجن إكس المؤلف عن السعي لتحقيق الكفاءة في نهاية المطاف، وتحقيق الكثير من هياكل البيانات الخاصة بهم إنجن إكس أسلوب مميز والوظائف العامة. على سبيل المثال، يتم توفير سلسلة بطول إنجن إكس الأمثل وفقا للمهام نسخة سلسلة الخيار مترجم ngx_copy مثل.
ملاحظة: الخط الأفقي السفلي تقسيم اسم المتغير اللغة على النمط C
هيكل بيانات الوصف ngx_str_t حزمة سلسلة ngx_pool_t يوفر آلية للمساعدة في إدارة مجموعة من الموارد (الذاكرة، الملفات) ngx_array_t مجموعة من هياكل البيانات قائمة مرتبطة تستخدم يتحقق نقل ngx_chain_t في المقام الأول بين وحدات ngx_buf_t التنفيذ الفعلي للقائمة مرتبطة لكل ngx_chain_t العقدة نيابة عن بيانات محددة معينة. تحقيق ngx_list_t بنية قائمة البيانات، وتعزيز بنية الجدول التجزئة ترتبط بشكل مضاعف قائمة ngx_hash_t جدول التجزئة نفذت ngx_hash_wildcard_t تنفيذ ngx_queue_t للتعامل مع البدل أسماء النطاقات المطابقة تنفيذ ngx_combinded_t توفير الحاويات مريحة تضم ثلاثة أنواع من جدول التجزئة مع ngx_hash_keys_arrays_t لبناء أنواع أخرى من تكوين الطبقة التجزئة المساعدة
يتكون نظام التكوين إنجن إكس من الملف الرئيسي وغيرها من البيانات الشخصية مساعدة. هذه الملفات هي ملفات التكوين النص العادي، وتقع كلها في دليل أسيوط من دليل التثبيت إنجن إكس.
تعليمات إنجن إكس المقدمة من مختلف وحدات، ويمكن أن توفر وحدات مختلفة تعليمات مختلفة لتنفيذ التكوين.
قيمة مفتاح شكل تعليمات بالإضافة إلى ذلك، فضلا عن تعليم النطاق.
معلومات التكوين Nginx.conf وفقا للإحساس منطقي، وتصنف أنها، وهي مقسمة إلى عدد وافر من نطاقات، تعليمات التكوين أو سياق المكالمة. نطاقات المختلفة تحتوى على واحد أو أكثر من عناصر التكوين.
تستخدم التعليمات التالية في هذه السياقات أكثر من ذلك:
التوجيه الوصف يحتوي إنجن إكس الرئيسي التوجيه في المعلمات وقت التشغيل المتصلة بمهام محددة التجارية (مثل HTTP خدمة أو خدمة البريد الإلكتروني الوكيل)، مثل عدد من إجراءات العمل، مثل هوية التشغيل. المستخدم، worker_processes، error_log، والأحداث، المتشعب، معلمات التكوين بريد HTTP التي تتعلق بالخدمات توفير HTTP. على سبيل المثال: إذا كنت تريد استخدام آه keepalive، سواء مع ضغط GZIP. خادم يدعم العديد من المضيفين الظاهري على خدمة المتشعب الخادم. كل الخادم المضيف الظاهري الموافق عنصر التكوين، الذي يحتوي على عناصر التكوين المتعلقة تكوين المضيف الظاهري. في توفير خدمة البريد بروكسي، ويمكنك أيضا إنشاء عدد من الخادم. كل خادم تمييزها بواسطة عنوان الاستماع. الاستماع، اسم_الملقم، access_log، والموقع، والبروتوكول، وكيل، smtp_auth، خدمات HTTP موقع xclient، وبعض URL محددة سلسلة من عناصر التكوين المقابلة. مؤشر، وجذر ندرك الإلكتروني البريد الإلكتروني المرتبط SMTP / IMAP / POP3 الوكيل عند بعض عناصر التكوين المشتركة (لأنه قد تنفيذ كلاء متعددة العمل على عنوان الاستماع متعددة). الخادم، المتشعب، imap_capabilities حدة
إنجن إكس الوحدات الوظيفية تنظيمها في السلسلة، وعند وصول الطلب، طلب بالتتابع من خلال كل أو جزء من هذه الوحدة سلسلة، للمعالجة. كل وحدة تنفذ وظيفة محددة. على سبيل المثال، لتحقيق طلب وحدة الضغط وحدة مباحث أمن الدولة، وحدة للاتصال مع الخادم الرئيسي، وحدة الاتصالات تنفذ خدمات FastCGI.
وتنقسم وحدة إلى ثلاث فئات:
وفقا لنشر الوثائق الرسمية، تقسيم وحدة المساعدة أيضا في الفئات التالية:
ويمكن وفقا لمهامهم تقسيمها إلى هذه الفئات:
إنهاء
توضح هذه المقالة بعض المفاهيم الأساسية للإنجن إكس.
إنجن إكس هو على درجة الماجستير العمالي أنماط نموذج موضوع، كل عامل هو ترابط واحد، أي طلب تجهيز هو معالجة ترابط واحد. نموذج الحدث هو واحد الخيوط المتزامن "I-منع غير O غير متزامن /" النموذج.
ويحكي قصة "وكيل عكسي" "موازنة" مفهوم، والتي تعد واحدة من الأسباب إنجن إكس يمكن التعامل مع المتزامنة عالية الأداء.
طلب إنجن إكس لشبكة ومفهوم التغليف طلب والاتصال.
إنجن إكس الهيكل التنظيمي المصدر وحدات، وحدات مختلفة لتحقيق وظائف مختلفة، يتم ربطها بعد ذلك معا القيام حدثا كبيرا، ومعرفة ما وحدة تصنيف، يمكنك إعلامنا كيفية العثور على وثائق رسمية.
قبل لم أر ما الإرشادات والتعليمات التي لديهم أي وظيفة، ليس إنجن إكس يدرك تماما عن أي نوع من وظيفة، لأنه عقد، لأنه عقد "يمكن التفكير في الآخرين وفكر وتنفيذها" أفكار ل إنجن إكس استخدامها. إنجن إكس كخدمة بروكسي، في منتصف تفعل ما تريد.
الكاتب: JC_Huang
الرابط: الشبكي: //www.jianshu.com/p/1648d4e936f2