ایجاد: ۱۱:۲۵ ۱۳۹۲/۱۰/۲۰
ویرایش: ۹:۳۰ ۱۳۹۴/۱/۱۳

آموزش‌ها

»

مزایای nginx و روش تنظیم و راه اندازی آن

nginx (که به صورت «انجین اکس» تلفظ می‌شود) یک کارساز وب شبیه آپاچی است که به دلیل سبکی و کارایی بالا و همچنین نداشتن محدودیت‌های Apache، به عنوان یک رقیب جدی‌اش محسوب می‌شود و رشد خوب Nginx در این سال‌ها گواه این موضوع است:

* Other, Rest, ... Nginx IIS Apache *
تولد نسخه پایدار انجین اکس 11% 0 21% 68% 2004
سال‌های اوج درخشش IIS 15% ? 35% 50% 2007
رشد سایر کارسازهای وب از جمله انجین اکس و افول IIS 29% 5% 20% 46% 2009
آشکار شدن قدرت و توانایی انجین اکس و روی آوردن بسیاری از سایت‌ها به آن 15% 15% 17% 53% 2013
بد نیست بدانید در بین هزار و همچنین 10هزار سایت برتر دنیا، nginx بیش از سایر سروکننده‌ها طرفدار دارد. (منبع)
نمودار محبوبیت nginx در مقایسه با سایر کارسازهای وب

یکی از دلایلی مهاجرت بسیاری از مدیران سرور از کارساز مشهور آپاچی به انجین اکس است که آپاچی بیش از 10 هزار کانکشن همزمان را نمی‌تواند پاسخگو باشد (همان مشکل C10K) در حالی که انجین‌اکس (همانند Node.js) با پردازش غیرهمزمان، این مشکل را حل کرده است.
البته این تنها مزیت انجین‌اکس نیست و مزایای دیگری نیز نسبت به سایر سرو کننده‌های درخواست‌های وب وجود دارد که در سایت‌ش یا ویکی‌پدیا می‌توانید مطالعه کنید.

یکی از مزایای انجین‌اکس این است که از سیستم‌عامل‌های مختلف پشتیبانی می‌کند لذا علاوه بر روی سرورهای عمدتا لینوکسی، می‌توانید بر روی ویندوز یا مک شخصی خود نیز آن را نصب و تنظیم کنید.
برای این منظور کافی است به سایت Nginx رفته و جدیدترین نسخه آن را که به صورت یک فایل zip است، دانلود و در پوشه‌ای مثل c:\nginx استخراج (extract) کنید. فایل nginx.conf فایل مربوط به تنظیمات وب سرور است (مشابه فایل httpd.conf در آپاچی و فایل web.config در IIS)

events {worker_connections  1024;}
http {
  server {
    listen     80;
    server_name  test.com;
    location / {
      root   d:wwwhtmltest;
      index  index.html index.htm;
    }
    location ~ .php$ {
      root       html;
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
      include    fastcgi_params;
    }
    location ~ /.ht {
      deny  all;
    }
  }
}
راهنمای کاملی در خصوص اعمال تنظیمات Nginx در بخش مستندات سایت انجین‌اکس درج شده است.

انجین‌اکس برخلاف آپاچی از htaccess برای override کردن تنظیمات وب سرور استفاده نمی‌کند و این یک حسن است. زیرا مثلا وقتی کاربر درخواست صفحه‌ای مثل site.com/a/b/c/d/e/f/g/h/i/j/k.html را می‌کند، سرور آپاچی مجبور است تک‌تک پوشه‌های a, b, ..., k را جستجو کند و محتویات htaccess آنها را بخواند و تحلیل کند تا بتواند به آن درخواست پاسخ دهد! در حالی که در Nginx تمامی تنظیمات فقط در همان فایل nginx.conf نگهداری می‌شود. (البته در Apache هم می‌توان htaccess را غیرفعال کرد تا مشابه انجین‌اکس شود و سرور برای پاسخ به درخواست‌ها سریع‌تر عمل کند. برای این منظور کافی است AllowOverride در فایل httpd.conf روی None تنظیم شود.)
همچنین دقت کنید که علاوه بر مساله پرفرمنس، htaccess مشکلات امنیتی خاص خود را نیز دارد مثلا ممکن است مدیر اجرای فایل php را در پوشه فایل‌های آپلودی کاربران خاموش کرده باشد اما یک کاربر پوشه‌ای ایجاد کند و در آن یک فایل htaccess ایجاد کرده و htaccess پوشه مادر (که مدیر تعریف کرده) را override نماید.

برخی تنظیمات انجین‌اکس برای امنیت و کارآیی بیشتر

کار با تنظیمات انجین‌اکس (همانطور که در مستندات Nginx آمده) ساده و ملموس است. در ادامه نکاتی ساده برای تنظیم بهتر Nginx عرض می‌شود.
طبعا با توجه به اینکه اکثر سرورهای اینترنت از نوع لینوکسی هستند، برخی آدرس‌دهی‌ها و تنظیمات ناظر به سرور لینوکسی است و در سایر سرورها نیز مشابه آن است.

  • نکاتی در مورد مسیر فایل‌ها و ویرایش تنظیمات
    تنظیمات سایت‌های سرو شونده با Nginx به صورت پیش‌فرض در پوشه /usr/local/nginx/conf/ است و فایل /usr/local/nginx/conf/nginx.conf نیز حاوی تنظیمات اصلی و پیشفرض است.
    /usr/local/nginx/html/ پوشه پیشفرض صفحات وب است.
    /usr/local/nginx/logs/ پوشه پیشفرض فایل‌های log مربوط به درخواست‌ها و پیغام‌های خطاست.
    پس از تغییر در فایل nginx.conf می‌توانید با دستور nginx -t صحت دستورات موجود در آن را بررسی کنید و در صورت صحیح بودن با دستور nginx -s reload تنظیمات جدید را إعمال کنید.
    برای http ، پورت پیشفرض 80 و برای https ، پورت 443 است که در صورت نیاز به سادگی با فایل nginx.conf قابل تغییر است.
  • روشن کردن gzip
    برای فشرده سازی محتوای صفحات و js, css برای بارگذاری سریع‌تر کافی است کد gzip on; را به کانفیگ کارساز وب Nginx خود بیفزایید.
  • خاموش کردن نمایش مشخصات کارساز و ورژن آن (برای امنیت بیشتر)
    برای این منظور کافی است کد server_tokens off; را در فایل کانفیگ درج کنید.
  • افزودن هدر X-Frame-Option
    تقریبا همه مرورگرهای کاربران (حتی ie8) از این هدر پشتیبانی می‌کند. این هدر مهم، مانع لود یک صفحه درون iframe می‌شود. لود صفحه شما در iframe می‌تواند خطرات امنیتی متعددی را برای سایت شما و گاهی هم برای کاربر سایت شما ایجاد کند.
    برای این منظور کافی است کد add_header X-Frame-Options Deny; را در فایل کانفیگ درج کنید.
  • افزودن هدر expire
    برای کش شدن فایل‌های استاتیک در حافظه دستگاه کاربر به مدت طولانی (مثلا 1 سال) کافی است expires 365d; را به کانفیگ انجین‌اکس سرور خود اضافه کنید.

[...این مطلب ناقص است و در آینده تکمیل خواهد شد...]


یادداشت‌های مرتبط
  1. نکاتی برای افزایش سرعت و کارآمدی سایت
  2. چگونه یک هاست مناسب انتخاب کنیم؟
  3. معرفی چند سایت جهت آپلود رایگان فایل ها
  4. www در ابتدای آدرس سایت، خوب است یا بد؟

مدیریت

نام وسیله

اعتبار ورود

نام کاربری

رمز عبور

رمز یکبارمصرف

... لیست تمام آموزش‌ها

تبلیغات

ربات‌های تلگرامی:
مجموعه ربات‌های تلگرامی ما برای ساده‌تر کردن کار با تلگرام و مدیریت کانال
دامنه‌های فروشی:
دامنه‌های زیر مربوط به ما یا مشتریان ماست که قابل واگذاری هستند. در صورت تمایل به داشتن یکی از آنها، با این اکانت تلگرامی مکاتبه نمایید.

دامنه‌هایی که می‌تواند مصرف تخصصی داشته باشد:
AnyDesk.ir, Firebase.ir, Angularjs.ir, 9px.ir alAdmin.ir, iQore.ir notion.ir, 3dn.ir,

دامنه‌هایی که می‌تواند مصرف فرهنگی/مذهبی داشته باشد:
mavaez.ir, 2aha.ir, babolelm.ir, mahjoor.ir

دامنه‌هایی که می‌تواند مصرف شخصی/عمومی داشته باشد:
azizami.ir, 90blog.ir