nginx (engine x) عبارة عن خادم وكيل مفتوح المصدر وخادم وكيل واحد ، بالإضافة إلى خادم ويب (HTTP) عالي الأداء وخفيف الوزن لأنظمة التشغيل Linux و BSD و Windows. يتم وصفه من قِبل مطوّر البرامج على أنه إضافة للبيئات الحرجة للبعثات.
الميزات في لمحة
تتضمن أبرز الميزات الرئيسية إنشاء نسخ بروكسي عكسي متسارع مع التخزين المؤقت ، والدعم المتسارع مع التخزين المؤقت لـ SCGI ، و FastCGI ، و uwsgi ، وخوادم memcached ، والهندسة المعيارية ، بالإضافة إلى دعم TLS SNI و SSL.
يوفر خادم وكيل البريد دعمًا لطبقة SSL (طبقة المقابس الآمنة) ، و STLS ، و STARTTLS المشفرة ، والعديد من طرق المصادقة لـ IMAP ، و POP3 ، و SMTP ، وإعادة توجيه المستخدم إلى خوادم POP3 أو IMAP ، بالإضافة إلى مصادقة المستخدم وإعادة توجيه الاتصال . من بين الميزات الأخرى المثيرة للاهتمام ، يمكننا ذكر دعم kqueue و sendfile و File AIO و DIRECTIO وقبول الفلاتر والكثير غير ذلك.
يمكنه معالجة العديد من شوائب SSI في نفس الوقت ، داخل صفحة ويب واحدة ، إذا كانت تتحكم بها FastCGI أو خوادم proxied. بالإضافة إلى ذلك ، يدعم جزء خادم HTTP من البرنامج التحقق من صحة مرجع HTTP و MP4 و FLV وتدفق Perl ومحدودية معدل الاستجابة وإعادة التوجيه لأكواد الخطأ 3xx-5xx ، بالإضافة إلى دعم اتصالات pipelined و keep-alive.
الخوادم على حد سواء الفهرس وملفات ثابتة
يمكن أن يقدم البرنامج ملفات قياسية وملفات ثابتة ، ويزود المستخدمين بتفاوت الأعطال وموازنة بسيطة للحمل ، ومرشحات متنوعة مثل XSLT ، و gzipping ، و SSI ، وتحويل الصور ، والردود المقاسة ، ونطاقات البايت.
نظرًا لأنه يوفر تكوينًا سهلاً ومنطقيًا ومرنًا ، تستخدم العديد من مواقع الويب المعروفة برنامج nginx لتوصيل المستخدمين بجودة عالية ومعلومات فريدة. من بينها ، يمكننا ذكر Wordpress.com و Netflix و FastMail.FM.
أنظمة التشغيل المدعومة
في الوقت الحالي ، تم اختبار nginx بنجاح على Linux 2.2-3 (32 بت) و Linux 2.6-3 (64-bit) و FreeBSD 3-10 (32-bit) و FreeBSD 5-10 (64- bit) و Solaris 9 (32 بت) و Solaris 10 (32 بت و 64 بت) و AIX 7.1 (PowerPC) و HP-UX 11.31 (IA64) و Mac OS X (PowerPC و 32 بت) و Windows XP و Windows Server 2003.
ما هو الجديد في هذا الإصدار:
تم إصدار إصدار مستقر nginx-1.12.0 ، يشتمل على ميزات جديدة وإصلاحات الأخطاء من فرع mainline 1.11.x - بما في ذلك دعم المتغيرات والتحسينات الأخرى في وحدة دفق ، إصلاحات HTTP / 2 ، دعم لشهادات SSL متعددة من أنواع مختلفة ، دعم وحدات ديناميكية محسنة ، والمزيد.
ما هو الجديد في الإصدار:
تم إصدار إصدار مستقر nginx-1.12.0 ، يشتمل على ميزات جديدة وإصلاحات الأخطاء من الفرع الرئيسي 1.11.x - بما في ذلك دعم المتغيرات وغيرها تحسينات في وحدة الدفق ، وإصلاحات HTTP / 2 ، ودعم شهادات SSL متعددة من أنواع مختلفة ، ودعم وحدات ديناميكية محسنة ، والمزيد.
ما هو الجديد في الإصدار 1.8.1:
الأمان: قد يحدث dereference مؤشر غير صالح أثناء معالجة استجابة خادم DNS إذا كان & quot؛ محلل & quot؛ تم استخدام التوجيه ، مما يسمح لمهاجم قادر على صياغة حزم UDP من ملقم DNS للتسبب في خطأ تجزئة في عملية عامل (CVE-2016-0742).
الأمان: قد تحدث حالة الاستخدام بعد الاستخدام المجاني أثناء معالجة استجابة CNAME إذا كان & quot؛ محلل & quot؛ تم استخدام التوجيه ، مما يسمح للمهاجم القادر على تحفيز تحليل الاسم أن يسبب خطأ تجزئة في عملية عامل ، أو قد يكون له تأثير آخر محتمل (CVE-2016-0746).
الأمان: كان قرار CNAME محدودًا بما يكفي إذا كان & quot؛ محلل & quot؛ تم استخدام التوجيه ، مما يسمح للمهاجم القادر على تحفيز قرار الاسم التعسفي بالتسبب في استهلاك مفرط للموارد في العمليات العمالية (CVE-2016-0747).
Bugfix: the & quot؛ proxy_protocol & quot؛ معلمة & quot؛ استماع & quot؛ لم يعمل التوجيه إذا لم يتم تحديده في أول & quot؛ استماع & quot؛ توجيه لمقبس الاستماع.
Bugfix: قد يفشل nginx في البدء في بعض المتغيرات القديمة من Linux؛ كان الخطأ قد ظهر في 1.7.11.
تصحيح خطأ: قد يحدث خطأ تجزئة في عملية تابعة إذا كانت & quot؛ try_files & quot؛ و & quot؛ الاسم المستعار & quot؛ تم استخدام التوجيهات داخل موقع معين من خلال التعبير العادي ؛ ظهرت الأخطاء في 1.7.1.
Bugfix: the & quot؛ try_files & quot؛ التوجيه داخل موقع متداخل يتم تقديمه بواسطة تعبير عادي ، يعمل بشكل غير صحيح إذا كان & quot؛ الاسم المستعار & quot؛ تم استخدام التوجيه في الموقع الخارجي.
Bugfix: & quot؛ تم إرسال الرأس & quot؛ قد تظهر التنبيهات في السجلات عند استخدام ذاكرة التخزين المؤقت ؛ ظهرت الأخطاء في 1.7.5.
تصحيح خطأ: قد يحدث خطأ تجزئة في عملية عامل إذا تم استخدام إعدادات ssl_session_cache مختلفة في خوادم ظاهرية مختلفة.
Bugfix: the & quot؛ expires & quot؛ التوجيه قد لا تعمل عند استخدام المتغيرات.
تصحيح الأخطاء: إذا تم إنشاء nginx باستخدام ngx_http_spdy_module ، فمن الممكن استخدام بروتوكول SPDY حتى إذا كانت & quot؛ spdy & quot؛ معلمة & quot؛ استماع & quot؛ لم يتم تحديد التوجيه.
ما هو الجديد في الإصدار 1.8.0:
يتضمن العديد من الميزات الجديدة من الفرع الرئيسي 1.7.x - بما في ذلك طريقة موازنة تحميل التجزئة ، التحقق من شهادة SSL الخلفية ، دعم تجمعات خيط التجريبية و proxy_request_buffering والمزيد.
الجديد في الإصدار 1.7.8:
تغيير: الآن & quot؛ If-Modified-Since & quot؛ & quot؛ If-Range & quot ؛، إلخ. يتم تمرير خطوط رؤوس طلبات العميل إلى الواجهة الخلفية أثناء التخزين المؤقت إذا كان nginx يعلم مقدمًا أن الاستجابة لن يتم تخزينها مؤقتًا (على سبيل المثال عند استخدام proxy_cache_min_uses).
تغيير: الآن بعد proxy_cache_lock_timeout nginx إرسال طلب إلى backend مع تعطيل التخزين المؤقت؛ التوجيهات الجديدة & quot؛ proxy_cache_lock_age & quot؛ & quot؛ fastcgi_cache_lock_age & quot ؛، & quot؛ scgi_cache_lock_age & quot ؛، & quot؛ uwsgi_cache_lock_age & quot؛ حدد الوقت الذي سيتم بعده تحرير القفل وسيتم إجراء محاولة أخرى للتخزين المؤقت للرد.
تغيير: & quot؛ log_format & quot؛ يمكن الآن استخدام التوجيه فقط على مستوى المتشعب.
الميزة: & quot؛ proxy_ssl_certificate & quot ؛، & quot؛ proxy_ssl_certificate_key & quot ؛، & quot؛ proxy_ssl_password_file & quot؛ & quot؛ uwsgi_ssl_certificate & quot ؛، & quot؛ uwsgi_ssl_certificate_key & quot ؛، & quot؛ uwsgi_ssl_password_file & quot؛ توجيهات. شكرا لبيوتر سيكورا.
ميزة: من الممكن الآن التبديل إلى موقع مسمى باستخدام & quot؛ X-Accel-Redirect & quot ؛. شكرا توشيكوني Fukaya.
الميزة: الآن & quot؛ tcp_nodelay & quot؛ يعمل التوجيه مع اتصالات SPDY.
الميزة: التوجيهات الجديدة في النصوص البرمجية لترجمة vim. شكرا لبيتر وو.
Bugfix: تجاهل nginx & quot؛ s-maxage & quot؛ القيمة في & quot؛ Cache-Control & quot؛ خط رأس الرد الخلفي. شكرا لبيوتر سيكورا.
تصحيح خطأ: في ngx_http_spdy_module. شكرا لبيوتر سيكورا.
تصحيح خطأ: في & quot؛ ssl_password_file & quot؛ التوجيه عند استخدام OpenSSL 0.9.8zc ، 1.0.0o ، 1.0.1j.
Bugfix: التنبيهات & quot؛ العنوان الذي تم إرساله بالفعل & quot؛ ظهر في السجلات إذا كان & quot؛ post_action & quot؛ تم استخدام التوجيه. ظهرت الأخطاء في 1.5.4.
Bugfix: التنبيهات & quot؛ سلسلة الإخراج http فارغة & quot؛ قد يظهر في السجلات إذا كان & quot؛ postpone_output 0 & quot؛ تم استخدام التوجيه مع SSI يشمل.
تصحيح خطأ: في & quot؛ proxy_cache_lock & quot؛ التوجيه مع subrequests SSI. شكرا ليتشون تشانغ.
ما هو الجديد في الإصدار 1.6.2:
الأمان: كان من الممكن إعادة استخدام جلسات عمل طبقة المقابس الآمنة في السياقات غير ذات الصلة إذا تم استخدام ذاكرة التخزين المؤقت لجلسة عمل SSL المشتركة أو نفس مفتاح تذكرة جلسة TLS لعدة & quot؛ خادم & quot؛ كتل (CVE-2014-3616). شكرا لانطوان Delignat-Lavaud.
Bugfix: قد يتعطل الطلبات إذا تم استخدام محلل وعرض خادم DNS استجابة غير صحيحة. ظهرت الأخطاء في 1.5.8.
Bugfix: قد يتعطل الطلبات إذا تم استخدام محلل وحدثت مهلة خلال طلب DNS.
ما هو الجديد في الإصدار 1.6.1:
الأمان: لم يتم تجاهل أوامر pipelined بعد أمر STARTTLS في وكيل SMTP (CVE-2014-3556) ؛ ظهرت الأخطاء في 1.5.6. شكرا لكريس بولتون.
Bugfix: قد يحتوي متغير uri $ على نفاية عند إرجاع الأخطاء بالرمز 400. بفضل Sergey Bobrov.
Bugfix: in the quot؛ none & quot؛ المعلمة في & quot؛ smtp_auth & quot؛ التوجيه. ظهرت الأخطاء في 1.5.6. شكرا ل Svyatoslav نيكولسكي.
ما هو الجديد في الإصدار 1.6.0:
تشتمل هذه النسخة الثابتة على العديد من الميزات الجديدة من فرع 1.5.x الرئيسي - بما في ذلك تحسينات SSL المختلفة ودعم SPDY 3.1 وإعادة التحقق من ذاكرة التخزين المؤقت مع الطلبات الشرطية ووحدة طلب المصادقة وغير ذلك.
ما هو الجديد في الإصدار 1.4.7:
الأمان: قد يحدث تجاوز سعة المخزن المؤقت للذاكرة في عملية عامل أثناء معالجة طلب تم تصميمه خصيصًا بواسطة ngx_http_spdy_module ، مما قد يؤدي إلى تعليمات برمجية عشوائية التنفيذ (CVE-2014-0133). بفضل لوكاس مولاس ، باحث في Programa STIC ، Fundacion Dr. Manuel Sadosky ، بوينس آيرس ، الأرجنتين.
تصحيح الأخطاء: في & quot؛ fastcgi_next_upstream & quot؛ التوجيه. شكرا لوكاس مولاس.
ما هو الجديد في الإصدار 1.4.6:
Bugfix: the & quot؛ client_max_body_size & quot؛ قد لا يعمل التوجيه عند قراءة نص طلب باستخدام ترميز النقل المقسم ؛ ظهرت الأخطاء في 1.3.9. شكرا لوكاس مولاس.
تصحيح خطأ: قد يحدث خطأ تجزئة في عملية عامل عند الوكلاء اتصالات WebSocket.
ما هو الجديد في الإصدار 1.4.5:
تصحيح خطأ: احتوى متغير $ ssl_session_id على جلسة كاملة تسلسل بدلاً من مجرد معرف جلسة عمل. شكرا ل إيفان ريستيتش.
Bugfix: قد يتم إغلاق اتصالات العميل فورًا إذا تم استخدام قبول مؤجل ؛ ظهرت الأخطاء في 1.3.15.
Bugfix: التنبيهات & quot؛ حجم buf صفر في الإخراج & quot؛ قد تظهر في سجلات بينما proxying؛ ظهرت الأخطاء في 1.3.9.
تصحيح خطأ: قد يحدث خطأ تجزئة في عملية عامل إذا تم استخدام ngx_http_spdy_module.
Bugfix: قد يتعطل اتصالات WebSocket proxied مباشرة بعد تأكيد الاتصال إذا تم استخدام أساليب الاستقصاء أو الاستقصاء أو / dev / poll.
تصحيح الأخطاء: قد يحدث انقضاء الوقت أثناء قراءة نص طلب العميل في اتصال SSL باستخدام تشفير النقل المقسم.
Bugfix: تسرب الذاكرة في nginx / Windows.
ما هو الجديد في الإصدار 1.4.4:
يقدم هذا الإصدار إصلاحًا لخط الطلب محلل الثغرة في nginx 0.8.41 - 1.5.6 تم اكتشافه بواسطة Ivan Fratric من Google فريق الأمن (CVE-2013-4547).
ما هو الجديد في الإصدار 1.5.0:
الأمان: قد يحدث تجاوز سعة المخزن المؤقت المستند إلى مكدس في عملية عامل أثناء معالجة طلب مصمم خصيصًا ، مما قد يؤدي إلى تنفيذ تعليمات برمجية عشوائية (CVE-2013-2028) ؛ ظهرت الأخطاء في 1.3.9. شكرا لجريج MacManus ، مختبرات iSIGHT الشركاء.
لم يتم العثور على التعليقات