قبل حين لقد أخبرتك عن هذه السلسلة من الدروس، حول كيفية تثبيت خادم وتكوينه للاستضافة عالية الطلب. ستتناول هذه المقالة تثبيت Nginx وتكوينه:
إنجن إكس:
لقد أخبرناك بالفعل عن Nginx مسبقًا في المقالة Nginx: بديل مثير للاهتمام لـ Apache، لقد أخبرناك أنه خادم ويب مثل Apache أو LightHttpd أو Cherokee، ولكن بالمقارنة مع Apache، فهو يتميز بأدائه وانخفاض استهلاك الأجهزة، وهو ما يفسر على وجه التحديد العديد من المواقع الكبيرة مثل Facebook أو MyOpera.com أو DropBox أو حتى WordPress .com استخدم Nginx بدلاً من Apache. في عالم لينكس DesdeLinux إنه ليس الوحيد الذي يستخدم Nginx، على حد علمي، يستخدمه emsLinux وMuyLinux أيضًا :)
تعود تجربتي الشخصية مع Nginx إلى عدة سنوات ، عندما بدأت بدافع الضرورة في البحث عن بدائل خفيفة الوزن لـ Apache. في ذلك الوقت ، كان Nginx يعمل على الإصدار 0.6 ولم يكن توافقه مع المواقع عالية الطلب المصنوعة في PHP هو الأفضل ، ولكن في الوقت الحاضر من الإصدار 0.9 وما بعده (يتوفر الإصدار 1.2.1 على Debian Stable ، ويتوفر الإصدار 1.4.2 على ArchLinux) قد تحسن كثيرًا ، لدرجة أنه مع التكوين الصحيح واتحاد Nginx + PHP ، سيعمل كل شيء مثل السحر.
في هذه السلسلة التعليمية سأستخدم Nginx الإصدار 1.2.1-2.2، متوفر في مستودعات ديبيان المستقرة (Wheezy).
1. التثبيت:
سنبدأ بأول شيء تثبيت Nginx من مستودعاتنا.
إذا كنت تستخدم توزيعة على الخادم الخاص بك مثل Debian أو Ubuntu أو بعض المشتقات في الجهاز ، فيجب عليك وضع ما يلي والضغط على أدخل :
aptitude install nginx
إذا كنت تستخدم توزيعة أخرى على خادمك مثل CentOS و Red Hat و Fedora ، فما عليك سوى تثبيت الحزمة: nginx من المستودع الرسمي
2. التكوين:
لقد قمنا بالفعل بتثبيت Nginx، ولكن من الواضح أننا بحاجة إلى تهيئته. لقد قمت بإعداد ملف مضغوط على FTP يحتوي على جميع التكوينات المستخدمة على الخوادم. DesdeLinux، لكل من PHP وNginx وما إلى ذلك. لنقم بتنزيل هذا الملف وفك ضغطه:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
سيؤدي هذا إلى إنشاء مجلد يسمى nginx-spawn-fastcgi ، سنحتاج منه إلى ملفين لـ Nginx الخالص (أي بدون ربطه بـ PHP):
- nginx.conf - »ملف تكوين Nginx الرئيسي (سنتحدث عن محتواه لاحقًا)
- index.html - »ملف html بسيط سنستخدمه لمعرفة ما إذا كان Nginx مناسبًا لنا حقًا في أبسط أشكاله
- mywebsite.net - »ملف التكوين لموقع ويب بسيط ، مضيف V (مضيف افتراضي) يقوم بتهيئة الوصول إلى html السابق
دعنا ننتقل أولاً إلى مجلد إعدادات Nginx:
cd /etc/nginx/
ثم دعونا نزيل التكوين الافتراضي ونضع التكوين الخاص بنا:
mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./
هذا ، كما قلت ، هو ملف ضبط Nginx الرئيسي ، وقد عرّفت فيه بالفعل ما يلي:
مستخدم www-data؛ worker_processes 4؛ pid /var/run/nginx.pid؛
وصول المستخدم إلى نظام الملفات (الذي يمكن لـ nginx الوصول إليه في كل مكان) ، وعدد العمليات التي يجب العمل بها وأيضًا معرّف PID (معرّف عملية nginx).
لدينا أيضًا كتلة صغيرة تسمى الأحداث (إعدادات الأحداث) تحتوي على سطر يشير إلى الحد الأقصى لعدد الاتصالات المسموح بها لكل حدث. يوجد أدناه كتلة تسمى http.
كتلة http هذه هي التي تحتوي تقريبًا على كل ما يتعلق بالاستضافة ، على الأقل العديد من الأشياء التي قد تهمك. على سبيل المثال ، الحد الأقصى لوقت البقاء أو الانتظار (المهلة) ، حيث ستكون سجلاتنا العامة (access.log و error.log) ، وضغط البيانات باستخدام gzip ، بالإضافة إلى القواعد الأخرى التي قد تكون مفيدة في المستقبل.
بمجرد أن يصبح ملف التكوين الرئيسي في مكانه ، فلننسخ الملف من مضيف V الخاص بنا إلى مجلد المواقع المتاح
cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/
بالإضافة إلى ذلك ، يجب علينا إنشاء ارتباط رمزي من هذا الملف إلى مجلد المواقع الممكنة.
ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/
أشرح فائدة وجود مواقع ممكنة ومتاحة.
سيجدون لحظات عندما يجب أن يكون لديهم العديد من ملفات vhost جاهزة ومهيأة ، لأنهم في هذا الخادم سيضعون على الإنترنت ، على سبيل المثال 5 مواقع. ومع ذلك ، يحدث أنه لم يحن الوقت بعد لتمكين 2 من هؤلاء المضيفين الخمسة ، ولكن يجب أن يكون لديهم الملفات جاهزة بحيث تكون متصلة بالإنترنت عند الضرورة في أقصر وقت ممكن. يمكنك وضع أكبر عدد تريده من المضيفات الافتراضية في المواقع المتاحة (المواقع المتاحة) ، لأن تلك التي يقرأها Nginx لوضعها على الإنترنت هي فقط تلك الخاصة بالمواقع التي تم تمكينها (المواقع التي تم تمكينها) ، وستعمل أيضًا في الاتجاه المعاكس ، في حالة رغبتك في وضع عدم الاتصال ( مؤقتًا على سبيل المثال) موقع ، ليست هناك حاجة لحذف الملفات من الخادم الخاص بك (الملفات التي سنحتاجها في وقت آخر) ، فنحن ببساطة نزيل الرابط الرمزي للمواقع الممكنة وهذا كل شيء. فائدة وجود روابط رمزية وليس مجرد نسخ الملف من مجلد إلى آخر ، هي أنه عندما نريد تعديل مضيف ، لا يهم إذا قمنا بتحرير الملف الموجود في ممكّن أو متاح ، في النهاية هو نفسه
أرشيف.
ملف mywebsite.net كما قلت من قبل ، مضيف vhost يعمل كمثال ، أي وبعبارة أخرى ، يجب علينا تعديل mywebsite.net وإنشاء التكوينات الخاصة بنا.
يجب تغيير ما يلي:
- access_log (السطر 3): سيكون هذا هو مسار ملف سجل الوصول إلى هذا الموقع
- error_log (السطر 4): سيكون هذا هو مسار ملف سجل الأخطاء لهذا الموقع
- اسم_الخادم (السطر 5): عنوان URL، المجال الذي تتم استضافته في هذا المجلد، على سبيل المثال، إذا كان المنتدى DesdeLinux سيكون: اسم خادم المنتدى.desdelinuxصافي
- الجذر (السطر 6): المسار إلى المجلد حيث توجد ملفات html ، فلنترك هذا في / var / www / لأنه سيكون اختبارًا فقط
الآن نحتاج فقط إلى نسخ ملف html إلى المجلد الذي نحدده في ملف VHost ، / var / www /:
mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/
ثم نعيد تشغيل Nginx وهذا كل شيء:
service nginx restart
وفويلا ، سيظهر شيء مثل هذا:
أذكرك أننا نعمل أولاً مع Nginx لـ HTML ، دون الحاجة إلى دعم PHP ، سيكون تثبيت PHP هذا وربطه بـ Nginx هو محتوى البرنامج التعليمي التالي (في غضون أيام قليلة ، أعدك).
على أي حال ، هذا هو البرنامج التعليمي الخاص بتثبيت وتهيئة Nginx بحيث يعمل بشكل خالص ، أي موقع HTML ، آمل أن يكون موضع اهتمامك.
سأوضح أنه نعم ، لا تزال هناك أفضل الممارسات التي يمكن استخدامها ، ومع ذلك ، دعنا ننتظر لإنهاء هذه السلسلة من البرامج التعليمية ثم سنقيم النتيجة النهائية للعمل work
تحياتي
شكرا ، مفيد جدا!
شكرا لك على التعليق
في backports يوجد nginx 1.4 ..
نعم ، لكن في خادم إنتاج لا أستخدم أيًا من ذلك 😀
تقصد بـ "it" أحدث إصدار مستقر ومُختبَر تم إصداره بواسطة nginx ، فأنت تجعله يبدو وكأنه مثبت من sid. ~ _ ~
آه ، هل هذا ... على الخوادم التي لم أحبها أبدًا استخدام repos أو backports أو أي شيء من هذا القبيل 🙂
دائمًا مستقر على الخوادم ، تعلمت ذلك منذ سنوات.
Nginx 1.4 مستقر منذ أبريل الماضي ، في backports هو 1.4.1-3.
2013-04-24
تم إصدار الإصدار المستقر nginx-1.4.0 ، والذي يشتمل على العديد من الميزات الجديدة المطورة في الفرع 1.3.x - دعم وكلاء اتصالات WebSocket وتدبيس OCSP ووحدة SPDY ومرشح Gunzip والمزيد.
http://nginx.org/en/CHANGES-1.4
أنت محق فيما تقوله ، قبعتي مرفوعة.
شكرًا على المشاركة ، أنا حاليًا أضع أقدم مشاركة لك قيد الممارسة.
سأقوم بتعبئة الأسئلة XD
شكرا على القراءة 🙂
إذا كان لديك أي أسئلة أو استفسارات، كما تعلمون، نحن هنا للمساعدة، وهناك المنتدى.desdelinux.net حيث سنحاول معًا أن نقدم لك أفضل الحلول
تحياتي
لدي سؤال عندي LAMP [Linux (Debian Wheezy) و Apache و PHP و MySQL] يعمل على خادمي لـ WordPress و Owncloud ، كيف أقوم بالانتقال إلى Ngnix ، وسؤال آخر هو ما الفرق بين Ngnix و Lighttpd.
أكبر تعقيد أو صعوبة في الترحيل من Apache إلى Nginx هي تكوينات كل موقع ، أي بالتحديد .htaccess الذي تستخدمه.
يعد .htaccess هو الأكثر تعقيدًا عند التبديل إلى Nginx ، نظرًا لأنها تكوينات مختلفة يجب عليك وضعها في Nginx VHost.
حول LightHTTPd و Nginx ... لا أعرف ، لقد استخدمت LightHTTPd مرة واحدة فقط منذ عدة سنوات ، وليس لدي حاليًا أي فكرة عن كيفية تطورها ، خاصة باستخدام PHP.
يبدو NGINX واضحًا جدًا مقارنة بأباتشي. في انتظار الحلقة القادمة لتتمكن من استكمالها بـ PHP
أنا في انتظار النصائح لتحسين المزيد من nginx 😀
بالمناسبة Gaara ، يمكنك تضمين في البرنامج التعليمي التالي كيفية تنفيذ دعم SSL.
تحية.
النصائح التي تأتي هي في الواقع لتحسين معالجة PHP، والتخزين المؤقت للموقع، ويمكنني أن أعطي مثالاً على التكوين الذي نستخدمه DesdeLinux لـ Nginx+Wordpress+W3_Total_Cache :)
شكرا لك مساهمة جيدة.
ودليل ارشلينوكس متى؟ وجه ضاحك
لقد كان الأمر مشابهًا جدًا في Arch ، حيث تتغير أسماء الحزم فقط ولكن ...
لكن من لديه خادم إنتاج مع Arch؟ 😀
مرحبا هناك،
إنه لي مرة أخرى xD ...
كنت أتبع خطواتك لتطبيقها على جهاز مع archlinux ولدي المشكلة التالية:
[abr4xas@Genius www]$ systemctl status nginx.service
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)
أي اقتراحات 😀
Jo ... xox ، أريد فقط خادمًا داخليًا ، أي أريد فقط استبدال xampp ، هل يجب أن أفعل كل هذا؟
إذا كنت تريد يمكنك تنفيذ هذا (والذي أكرره ، فهو ما يعمل معه DL) ، في الواقع خادمي الافتراضي (الذي أستخدمه للتطوير والاختبار) لقد قمت بذلك بنفس الشيء الذي أشرح له.
أي أنه يمكنك إما إزالة XAMPP ووضع هذا المتغير وسيعمل بشكل جيد ، أو إذا كنت تريد مغادرة XAMPP ... فسيظل يعمل من أجلك.
النقطة الإيجابية في استخدام هذا التي أعرضها هي الاستهلاك المنخفض جدًا للأجهزة مقارنةً بـ Apache ، ولكن ، على جهاز الكمبيوتر الشخصي الخاص بك ، وهو ليس طلبًا كبيرًا على الاستضافة بأي وسيلة ... إذا كان XAMPP يعمل جيدًا بالنسبة لك ، فأنا لا ر ترى لماذا إزالته
لدي بالفعل خادم Linux يعمل (Debian و Nginx و MySQL و PHP) لقد واجهت صعوبة في جعل PHP تعمل مع Nginx لأنني كنت معتادًا على خادم ويب Apache بسيط.
حسنًا ، سؤالي هو: هل يعرف أي شخص كيف يمكنني توجيه مجال اختبار اشتريته إلى الخادم الخاص بي؟ أرغب في تجربة نطاق .com الخاص بي لمعرفة كيفية عمله ، لكن ليس لدي أدنى فكرة عن كيفية القيام بذلك ، لأنني كنت دائمًا أستخدم عنوان NOIP للوصول إليه باستخدام noip DUC.
أتمنى أن يساعدني أحد ، شكرًا!
أفهم هذا عند محاولة الاتصال ببروتوكول نقل الملفات الخاص بك:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
تم إرسال طلب HTTP ، في انتظار الاستجابة ... 404 غير موجود
2015-11-23 17:46:30 خطأ 404: غير موجود.
لدي خادم يعمل على CentOS (Gunicorn ، Nginx ، PHP) لقد كلفني الكثير من العمل لجعلها تعمل ولكن النقطة التي علقت فيها هي أن صفحة الويب التي أريد إطلاقها تحتاج إلى تكوين مزود المجال في هذا الحالة Go Daddy ، لذلك في هذه المرحلة لا أعرف كيف أستمر.
هل يمكنك مشاركة ملفات التكوين معي حيث لا يمكنني تنزيلها من فضلك