NGINX چیست ؟

nginxقصد دارم در سلسه مطالبی در رابطه با ماژول ها و برنامه هایی که بر روی وب سرورهای سایت هایی که طراحی کرده ام صحبت کنم اگر مطالب وب سایتم رو دنبال کرده باشید در رابطه با مشکلاتی که با وب سرور آپاچی  در سرور های سایت شبکه خبری العالم داشتیم صحبت کرده ام.

بزرگترین مشکل وب سرور معروف آپاچی محدودیت کانکشن همزمان 10000 تایی هست که دارد و همچنین میزان مصرف بالای حافظه است. Nginx وب سرور معروفی هست که رایگان هست ,حجم پایینی دارد و کارایی بسیار بالا و تحت لایسنس BSD منتشر می شود. یکی بزرگترین مزیتهای این وب سرور ، پشتیبانی بسیار عالی از فایل های استاتیک هست. 
 
Nginx سرعت پاسخگویی بسیار بالایی دارد و در بازدید های بسیار بالا واقعا عالی عمل می کند. از جمله قابلیت های Nginx سازگاری این وب سرور با اکثر توزیع های لینوکس هست. مستندات Nginx به نظر بسیار خوب هست و فروم Nginx هم بسیار بهتر،  من خودم اکثر سوالاتم رو در این سایت در زمان بسیار کوتاهی دریافت می کنم و این برای من بسیار ارزشمند هست. بروز رسانی و نصب Nginx  بسیار ساده است و یکی از قابلیت های خوب Nginx این هست.
در زمانی که شما می خواهید به نسخه جدید تر   Nginx خودتون رو اپگرید کنید به صورت on the fly این کارو انجام می دهد و این مورد در پروژه هایی که نباید سایت داون تایم داشته باشه خیلی اهمیت داره.
 
Nginx  برای مدیریت در خواست ها یا همون  connection ها از روش منحصر به خودش استفاده می کند که البته از این روش در وب سرور های دیگری هم استفاده شده است. 
 
در وب سرور Nginx برای هردرخواست یک thread جدید درست می شود و این درحالی هست که سیستم thread poll هم که دارد thread را تا زمانی حفظ می کند که در اون لحظه درخواست جدید بیاد و Nginx از thread های بیکار استفاده می کند. این روش استفاده از thread ها در انجین ایکس بسیار کارامد هست به طور کلی مدیریت باز و بست شدن thread ها در وب سرور هایی مثل آپاچی باعث شده که این وب سرور در کانکشن های بالا ،در هندل کردن این بازدید ها به قول معروف کم بیاورد.
 
Nginx علاوه بر این که یک وب سرور هست به درخواست های reverse proxy و e-mail (IMAP/POP3) proxy  ها هم پاسخ  می دهد.
 
 

 
 
 

Total Sites Across All Domains

August 1995 - February 2011

Market Share for Top Servers

Across All Domains 

August 1995 - February 2011

Totals for Active Servers

Across All Domains
June 2000 - February 2011

Market Share for Top Servers

Across the Million Busiest Sites

 September 2008 - February 2011

 
تنظیمات Nginx برای راه اندازی دروپال
 

بعد از اینکه هسته سرور و پکیج های سرور خودتون رو بروزرسانی کردید کافیه در خط فرمان لینوکس دبیانی خودتون دستور زیر را وارد کنید

apt-get install nginx

و بعد از تمام شدن مراحل نصب کافیه Nginx را استارت کنیم

/etc/init.d/nginx start

حالا فقط کافی در یک مرورگر ادرس سرور خودتون رو وارد کنید.

 

برای اینکه از قابلیت ادرس های تمیز یا clean url در دروپال استفاده کنید باید دستورات زیر را در تنظیمات انجین ایکس وارد کنید

vi /etc/nginx/sites-available/www.example.com.vhost

 

server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/www.example.com/web;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }

       index index.php index.html;

       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }

       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }

       # Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
        location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ {
                deny all;
        }

       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }

       location / {
                try_files $uri $uri/ /index.php?$args;
       }

       location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
                expires max;
                log_not_found off;
       }

       location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }
}
 

 

برای اینکه بتونید فایل ها php رو اجرا کنید باید از واسطه ای(منتقل کننده) مثل php-fpm استفاده کنید.

 

 

دسته بندی ها: 

دیدگاه‌ها

سلام مطلب خوبی بود ممنون این نشان از تجربه شماست.لطفا در مورد بازگشتن به دروپال هم توضیح بدید! در ضمن تصحیح کنید به این صورت sudo apt-get install nginx در ضمن بهتره که apt-get هم آپدیت بشه یا حق

سلام ، ميشه تنظيمات كلي اين رو براي وردپرس هم بگيد؟؟ ممنونم

سلام یه سرور داریم که روش دو تا سایت دروپالی هست و 7-8 تا سایت جوملا. روی سایت های دروپال وقتی اسکریپت های سنگین و یا clear cacheاجرا میشه حدود 5-6 دقیقه زمان می بره. این زمان بیشتر بود تا اینکه mysql رو آپتیمایز کردم و رسید به 4 تا 6 دقیقه. به نظر میاد بقیه آپتیمایز برمیگرده به nginx. شما می تونید کمک کنید؟ سپاس

خیلی کمکم کرد مطلبتون. موفق باشید

کلا باحال بودش از لینوکسی ها خوشم میادش وبت جالبه

آموزش خوبی بود تشکر

افزودن نظر جدید