نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

Nginx: راه اندازی و نصب. بهینه سازی Nginx

عصر بخیر!

بله، به نظر من، Nginx چندین برابر سریعتر از سرور آپاچی است. برخی مخالفت خواهند کرد - زیرا آپاچی می تواند بهینه شود و همچنین سریع می شود. این درست است، اما نباید فراموش کنیم که Nginx می تواند بسیار اورکلاک شود. حتماً یک مقاله جداگانه در مورد بهینه سازی به طور مفصل خواهم نوشت.

چند نظریه در مورد Nginx + php-fpm

در وب سرور آپاچی، php یک افزونه است، چنین باندلی کند است و منابع زیادی را مصرف می کند. با توجه به این معماری ناخوشایند، آپاچی معمولاً نمی تواند بیش از 200-300 درخواست در ثانیه را انجام دهد، حتی در یک سرور بسیار قدرتمند. در Nginx از معماری متفاوتی استفاده می شود - وب سرور Nginx خود فقط درخواست های استاتیک (تصاویر، css و غیره) را پردازش می کند و اجرای php به سرور نرم افزار دیگری - php-fpm داده می شود. Php-fpm (FastCGI Process Manager) یک نرم افزار کاملاً مستقل است که می توان آن را بر روی همان سرور Nginx (برای پروژه های کوچک) نصب کرد یا روی سرور جداگانه قرار داد. پروژه های بزرگ معمولاً به چندین سرور با Nginx، php-fpm و پایگاه داده سرویس می دهند.

با جایگزینی سرور آپاچی با Nginx + php-fpm می توانید سرعت پردازش درخواست های کاربران را افزایش دهید و در سخت افزار صرفه جویی زیادی کنید. یک پروژه وب با ترافیک حداکثر 10000 بازدیدکننده منحصر به فرد در روز می تواند با پرداخت 5 دلار در ماه روی ارزان ترین سرور مجازی DigitalOcean زندگی کند. ضمناً اگر این لینک - DigitalOcean را دنبال کنید پس از ثبت نام 10 دلار دریافت خواهید کرد که 2 ماه استفاده از سرور مجازی است. هیچ شرایط اضافی برای این وجود ندارد.

اما بیایید دست به کار شویم. من فرآیند نصب و پیکربندی را با استفاده از CentOS 6.x به عنوان مثال شرح می دهم، اما برای سایر توزیع های لینوکس تفاوت چندانی نخواهد داشت.

نصب Nginx:

  • /var/run/php5-fpm.sock باید از قبل روی سرور وجود داشته باشد؟ در اوبونتو 16.04 چنین فایلی را در /var/run پیدا نکرد
  • 1. نصب مخزن Nginx:توزیع های استاندارد لینوکس به طور پیش فرض دارای توزیع Nginx نیستند، بنابراین بیایید آن را به سیستم اضافه کنیم.

    vi /etc/yum.repos.d/nginx.repo


    نام = مخزن nginx
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    فعال = 1

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

    2. نصب Nginx از مخزن:اکنون فقط دستور install را اجرا کنید.

    نصب php-fpm:

    Php-fpm به طور پیش فرض در همه توزیع های مدرن موجود است، بنابراین فقط نصب کنید:

    با این کار خود سرور و تمام بسته های پشتیبانی کننده نصب می شود. اگر چیزی کار نمی کند، می توانید php-fpm را خودتان از منابع بسازید، برای دستورالعمل های دقیق به اینجا بروید.

    راه اندازی و اجرای Nginx + php-fpm:

    1. بیایید با php-fpm شروع کنیم:فایل کانفیگ را باز کنید

    vi /etc/php-fpm.d/www.conf

    و کار را از طریق سوکت در آنجا بنویسید (به این ترتیب سریعتر کار می کند):

    listen = /var/run/php5-fpm.sock

    خط "listen=" موجود را تغییر دهید یا یک خط جدید اضافه کنید و خط قبلی را حذف کنید.

    2. حالا بیایید به Nginx برویم:یک فایل پیکربندی برای اولین سایت خود ایجاد کنید (نام سایت را جایگزین site1 کنید، اگرچه همچنان کار می کند)

    vi /etc/nginx/conf.d/site1.conf

    در زیر حداقل تنظیمات وجود دارد، شما فقط می توانید آن را کپی کنید. هر چیزی که باید جایگزین شود با رنگ قرمز مشخص شده است. در این پیکربندی، بازگشت فایل های ثابت و دسترسی به یک فایل php - index.php پیکربندی شده است. تمام CMS های مدرن با یک فایل راه اندازی می شوند، بنابراین این پیکربندی برای اکثر وظایف مناسب است. اگر نیاز به اجرای فایل های php دیگر دارید، آنها را جداگانه بنویسید. در این پیکربندی، فایل های سایت باید در پوشه /home/mysite/public_html/ قرار گیرند.

    سرور(
    listen [آدرس IP سرور] :80;
    سایت server_name ;
    حل کننده 8.8.8.8;
    error_log /var/log/nginx/site _error.log warn;
    root /home/site/public_html;
    access_log /var/log/nginx/site -access.log;
    charset utf-8;
    index index.php;
    مکان ~ .*(gif|jpg|jpeg|png|ico|swf|txt|pdf|doc|docx|exe|xls|xlsx|strings|zip|rar|7z)$ (
    1 سال منقضی می شود.
    }

    مکان ~ .*(html|htm|js|css)$ (
    1 سال منقضی می شود.
    }

    مکان ~ ^/index.php (
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param SCRIPT_FILENAME /home/site/public_html/index.php;
    شامل /etc/nginx/fastcgi_params.
    fastcgi_param SCRIPT_NAME /index.php;
    }

    اکنون اولین فایل های سایت خود را در پوشه /home/site1 /public_html/ قرار دهید و ما آماده کار هستیم.

    3. شروع nginx + php-fpm:

    شروع سرویس nginx

    شروع سرویس php-fpm

    اگر همه کارها را به درستی انجام دادید و هیچ جا اشتباه نکردید، نتیجه به این صورت خواهد بود:

    اگر سؤالی دارید یا نیاز به توضیح دارید - لطفاً سؤالی بپرسید یا نظر خود را بنویسید.

    من همیشه خوشحالم که کمک می کنم!

    |

    Nginx یکی از محبوب ترین وب سرورهای جهان است که به شما امکان میزبانی سایت های بسیار بزرگ با ترافیک بالا را می دهد. تمایل به استفاده از منابع کمتری نسبت به آپاچی دارد. همچنین می تواند به عنوان یک پروکسی معکوس استفاده شود.

    این راهنما به شما کمک می کند Nginx را روی سرور اوبونتو 16.04 نصب کنید.

    الزامات

    • سرور اوبونتو 16.04.
    • کاربر غیر ریشه با دسترسی به دستور sudo (در این مورد بیشتر در اینجا).

    مرحله 1 Nginx را نصب کنید

    بسته Nginx در مخزن استاندارد سیستم اوبونتو موجود است.

    از آنجایی که این اولین تعامل با سیستم بسته بندی apt در جلسه جاری است، فهرست بسته باید به روز شود. پس از آن می توانید Nginx را نصب کنید.

    به روز رسانی sudo apt-get
    sudo apt-get نصب nginx

    سپس مدیر بسته وب سرور و تمام وابستگی های آن را نصب می کند.

    مرحله 2: راه اندازی فایروال

    قبل از شروع Nginx، باید فایروال را برای پشتیبانی از ترافیک Nginx پیکربندی کنید. در حین نصب، Nginx به عنوان یک سرویس در ufw ثبت می شود، بنابراین اجازه دادن به ترافیک وب سرور بسیار آسان است.

    لیست تنظیمات برنامه ufw را باز کنید:

    لیست برنامه sudo ufw

    دستور برمی گردد:

    برنامه های کاربردی موجود:
    Nginx Full
    Nginx HTTP
    Nginx HTTPS
    OpenSSH

    همانطور که می بینید، سه پروفایل Nginx در لیست وجود دارد:

    • Nginx Full: این نمایه پورت 80 (ترافیک شبکه رمزگذاری نشده) و 443 (ترافیک TLS/SSL رمزگذاری شده) را باز می کند.
    • Nginx HTTP: نمایه برای ترافیک HTTP رمزگذاری نشده در پورت 80.
    • Nginx HTTPS: نمایه برای ترافیک رمزگذاری شده TLS/SSL در پورت 443.

    برای فعال کردن نمایه، وارد کنید:

    sudo ufw اجازه می دهد "nginx HTTP"

    مطمئن شوید که نمایه فعال است:

    دستور باید گزارش دهد که ترافیک HTTP مجاز است:

    وضعیت: فعال
    به اقدام از
    -- ------ ----
    OpenSSH ALLOW Anywhere
    Nginx HTTP ALLOW Anywhere
    OpenSSH (v6) ALLOW Anywhere (v6)
    Nginx HTTP (v6) ALLOW Anywhere (v6)

    مرحله 3: تست وب سرور

    پس از نصب، اوبونتو 16.04 به طور خودکار Nginx را راه اندازی می کند. در این مرحله، وب سرور باید راه اندازی و راه اندازی شود.

    برای تأیید اینکه Nginx در حال اجرا است، وضعیت آن را در سیستم systemd init جستجو کنید.

    وضعیت systemctl nginx
    nginx.service - یک وب سرور با کارایی بالا و یک سرور پروکسی معکوس
    بارگیری شد: بارگیری شد (/lib/systemd/system/nginx.service؛ فعال؛ از پیش تعیین شده فروشنده: فعال)
    فعال: فعال (در حال اجرا) از دوشنبه 2016-04-18 16:14:00 EDT. 4 دقیقه 2 ثانیه پیش
    PID اصلی: 12857 (nginx)
    CGroup: /system.slice/nginx.service
    ├─12857 nginx: فرآیند اصلی /usr/sbin/nginx -g شبح روشن است. master_process روشن است
    └─12858 nginx: فرآیند کارگر

    همانطور که مشاهده می کنید، این سرویس با موفقیت راه اندازی شده است.

    همچنین می توانید از صفحه فرود پیش فرض Nginx بازدید کنید. با نام دامنه یا آدرس IP در مرورگر موجود است.

    اگر آدرس IP خود را نمی دانید، می توانید با استفاده از خط فرمان آن را پیدا کنید. وارد:

    ip addr نشان می دهد eth0 | grep net | awk "( print $2; )" | sed "s/\/.*$//"

    دستور چندین خط را برمی گرداند. هر آدرس را در مرورگر بررسی کنید.

    همچنین می توانید دریابید که سایر نقاط شبکه چگونه آدرس IP شما را می بینند.

    sudo apt-get install curl
    curl-4 icanhazip.com

    هنگامی که IP خود را شناختید، آن را در مرورگر خود تایپ کنید تا مطمئن شوید که سرور وب به درستی کار می کند.

    http://server_domain_or_IP

    صفحه فرود استاندارد Nginx باید روی صفحه ظاهر شود:

    خوش آمدید به انجیناکس!
    اگر این صفحه را مشاهده کردید، وب سرور nginx با موفقیت نصب شده و کار می کند. پیکربندی بیشتر مورد نیاز است.

    مرحله 4: مدیریت فرآیندهای Nginx

    چند برنامه اساسی برای مدیریت وب سرور در نظر بگیرید.

    برای توقف Nginx، تایپ کنید:

    sudo systemctl stop nginx

    برای اجرا، تایپ کنید:

    sudo systemctl start nginx

    برای راه اندازی مجدد از دستور زیر استفاده کنید:

    sudo systemctl nginx را ریستارت کنید

    برای به‌روزرسانی تنظیمات Nginx بدون قطع اتصال، دستور زیر را صادر کنید:

    sudo systemctl بارگذاری مجدد nginx

    به طور پیش فرض، Nginx به طور خودکار هنگام بوت شدن سرور شروع می شود. این رفتار را می توان غیرفعال کرد:

    sudo systemctl nginx را غیرفعال کنید

    برای راه اندازی مجدد سرویس راه اندازی خودکار، تایپ کنید:

    sudo systemctl nginx را فعال می کند

    مرحله 5: فایل ها و فهرست های Nginx

    اکنون می دانید که چگونه سرویس را مدیریت کنید. وقت آن است که با فایل ها و فهرست های مهم Nginx آشنا شوید.

    محتوا

    • /var/www/htm: این فهرست حاوی محتوای فعلی سایت است. به طور پیش فرض، فقط شامل صفحه فرود استانداردی است که قبلاً دیده اید. این دایرکتوری را می توان در فایل پیکربندی Nginx تغییر داد.

    تنظیمات سرور

    • /etc/nginx: فهرست تنظیمات nginx که در آن همه فایل‌های پیکربندی ذخیره می‌شوند.
    • /etc/nginx/nginx.conf: فایل اصلی پیکربندی Nginx حاوی تنظیمات سرور وب جهانی است.
    • /etc/nginx/sites-available: فهرستی که بلوک های سرور پیکربندی شده (میزبان مجازی) هر سایت جداگانه را ذخیره می کند. Nginx از این بلوک‌ها استفاده نخواهد کرد تا زمانی که پیوندی به آن‌ها در فهرست فعال‌شده سایت‌ها ظاهر شود (که بعداً مورد بحث قرار خواهد گرفت). به طور معمول، این دایرکتوری برای راه اندازی هاست های مجازی استفاده می شود.
    • /etc/nginx/sites-enabled/: فهرستی که بلوک‌های سرور فعال را ذخیره می‌کند. برای گنجاندن یک بلوک، باید یک پیوند نمادین به یک فایل ذخیره شده در فهرست سایت های موجود ایجاد کنید.
    • /etc/nginx/snippets: این دایرکتوری قطعاتی از تنظیمات را ذخیره می کند که می توانند در پیکربندی Nginx گنجانده شوند. به طور معمول، بخش های پیکربندی بالقوه تکرارپذیر به عنوان قطعات اضافه می شوند.

    سیاهههای مربوط

    • /var/log/nginx/access.log: این گزارش تمام درخواست های دریافت شده توسط وب سرور Nginx را ثبت می کند (مگر اینکه پیکربندی دیگری انجام شده باشد).
    • /var/log/nginx/error.log: این گزارش تمام پیام های خطای Nginx را ذخیره می کند.

    نتیجه

    وب سرور Nginx اکنون نصب شده و آماده کار است. از آن برای ارائه محتوای سایت خود استفاده کنید.

    با سلام خدمت کاربر عزیز حبرهبر. داستان من در مورد چگونگی آماده سازی زمینه برای پروژه های توسعه وب محلی در سیستم عامل Ubuntu 16.04.1 LTS خواهد بود.

    در این مقاله، من می خواهم مشکلات احتمالی مربوط به نصب و پیکربندی نرم افزار مورد نیاز برای توسعه وب مدرن را که توسعه دهندگان مبتدی و نه تنها ممکن است با آن مواجه شوند، رفع و توضیح دهم.

    فن آوری هایی که در مقاله استفاده خواهند شد: nginx، php-fpm.

    قبل از شروع داستان، می خواهم توجه داشته باشم که همه این اقدامات را در یک سیستم "لخت" انجام دادم.
    من با مدیر بسته aptitude کار خواهم کرد. همچنین توصیه می کنم قبل از نصب نرم افزار، فهرست بسته و خود بسته ها را به روز کنید. در این مقاله این مراحل را با هم انجام می دهیم.

    برو

    نصب پکیج منیجر صلاحیت - استعداد - شایستگی، به روز رسانی فهرست و بسته ها

    نصب:

    استعداد نصب sudo apt
    ما شاخص را به روز می کنیم.

    به روز رسانی استعداد sudo
    به روز رسانی بسته ها (فرمان تمام بسته هایی را که نسخه های جدید برای آنها وجود دارد به روز می کند، در صورت نیاز به حذف بسته ها، انجام می شود).

    ارتقاء کامل استعداد sudo

    نصب و راه اندازی nginx(نسخه >= 1.10.0)

    نصب می کنیم.

    sudo aptitude نصب nginx
    راه اندازی می کنیم.

    شروع سرویس سودو nginx
    ما نسخه را بررسی می کنیم تا مطمئن شویم نسخه قبلی یعنی زیر 1.10.0 را نصب نکرده ایم.

    ما نصب و راه اندازی را انجام دادیم، حالا بیایید به دایرکتوری که nginx ما در آن نصب شده است برویم و ساختار آن را بررسی کنیم. دایرکتوری nginx در این مسیر قرار دارد:

    سی دی /etc/nginx/
    شما می توانید محتویات دایرکتوری را با دستور ls مشاهده کنید، با پرچم های -la مشاهده محتویات دایرکتوری راحت تر خواهد بود (در واقع، این دستور با پرچم های خاص را می توان با جزئیات بیشتر و دقیق تر توصیف کرد، اما ما امروز یک موضوع متفاوت داریم).

    Ls-la
    ما در حال حاضر به دو دایرکتوری که در تصویر می بینید علاقه مندیم. اینها دایرکتوری های سایت های در دسترس و سایت های فعال هستند.

    بیایید به دایرکتوری sites-available برویم و پیکربندی میزبان مجازی (سایت) خود را شروع کنیم.

    cd /etc/nginx/sites-available
    قبل از شروع به ایجاد یک فایل پیکربندی، بیایید بررسی کنیم که چه چیزی در این فهرست داریم. در مورد من، دایرکتوری خالی نیست، از قبل حاوی فایل های پیکربندی است، من آنها را پاک کردم تا شما را گمراه نکنم.

    انحراف مهم

    در مورد نصب nginx "از ابتدا"، "از ابتدا" است، زیرا هنگام حذف nginx با دستور
    فایل های پیکربندی sudo apt-get remove nginx یا sudo apt remove nginx باقی می مانند و اگر ناگهان متوجه نشدید که چرا nginx کار نمی کند و می خواهید دوباره آن را نصب کنید (معمولاً کاربران مبتدی لینوکس به این کار متوسل می شوند)، پس از نصب مجدد کار نخواهد کرد. به درستی، با توجه به این واقعیت که فایل های پیکربندی قدیمی (پس از حذف با دستور حذف حذف نمی شوند) دارای تنظیمات نادرست هستند، آنها باید به درستی حذف یا پیکربندی شوند، تنها در این صورت nginx کار خواهد کرد.

    توصیه می کنم با دستور sudo apt-get purge nginx یا sudo apt purge nginx حذف کنید. اگر از مدیر بسته aptitude استفاده می کنید، sudo aptitude purge nginx کل بسته، از جمله تمام وابستگی ها و فایل های پیکربندی را حذف می کند.


    به طور پیش فرض یک فایل در این دایرکتوری وجود خواهد داشت که پیش فرض نام دارد. این شامل یک فایل پیکربندی با یک مثال است، با نظرات، می توانید آن را در اوقات فراغت خود مطالعه کنید، یا می توانید آن را به طور کلی حذف کنید (همیشه می توانید به اسناد رسمی مراجعه کنید).

    Ls-la

    بیایید فایل پیکربندی خودمان را ایجاد کنیم که با نام دامنه سایت محلی ما مطابقت داشته باشد (یا با نام واقعی، اگر قبلاً نام آن را می‌دانید). این راحت است، در آینده، زمانی که فایل های پیکربندی زیادی وجود داشته باشد، این شما را از سردرگمی در آنها نجات می دهد. در من این فایل پروژه.local نامیده خواهد شد.

    Sudo touch project.local
    ببینیم چی شد

    حالا بیایید در ویرایشگر بازش کنیم، من آن را در نانو باز می کنم.

    پروژه نانو سودو.محلی
    می بینیم که خالی است. حالا بیایید به سراغ تشکیل پرونده خود برویم. باید پیکربندی را به شکلی که در زیر نوشته شده است بیاورید. من فقط دستورالعمل های حیاتی این فایل را شرح می دهم، بقیه را شرح نمی دهم، زیرا در حال حاضر این مهم نیست، بالاخره ما یک موضوع پیکربندی اولیه داریم. این تنظیمات "تپه" برای توسعه پروژه های محلی کافی است، نه تنها پروژه های کوچک، بلکه بسیار بزرگ. در مقالات بعدی، من به طور جداگانه هر دستورالعمل استفاده شده را شرح خواهم داد (به این ترتیب خطوط، به عنوان مثال، server_name) این فایل نامیده می شود.

    نظرات را دقیقاً در فایل پیکربندی مشاهده کنید.

    سرور ( گوش دادن 80؛ # پورت گوش دادن در nginx server_name project.local؛ # نام دامنه مربوط به ریشه میزبان مجازی فعلی /home/stavanger/code/project.local؛ # دایرکتوری که پروژه در آن قرار دارد، مسیر به نمایه نقطه ورودی index.php؛ # add_header Access-Control-Allow-Origin *؛ # سرویس فایل های استاتیک به طور مستقیم مکان ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ ( access_log off; حداکثر منقضی می شود. log_not_found off ; ) مکان / ( # add_header Access-Control-Allow-Origin *; try_files $uri $uri/ /index.php?$query_string; ) location ~* \.php$ ( try_files $uri = 404; fastcgi_split_path_info ^( .+ \.php)(/.+)$؛ fastcgi_pass unix:/var/run/php/php7.0-fpm.sock؛ # اتصال سوکت php-fpm fastcgi_index index.php؛ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name؛ fastcgi_params;) مکان ~ /\.ht (همه را رد کنید؛))
    ما فایل را ذخیره می کنیم. حال باید بررسی کنیم که آیا خطایی در آن وجود دارد یا خیر. ما می توانیم این کار را به عنوان یک تیم انجام دهیم.

    سودو nginx -t
    اگر چنین اطلاعاتی را مانند تصویر می بینیم، پس همه چیز با ما درست است، می توانیم راه اندازی را ادامه دهیم. اگر خطایی دریافت کردید، ارزش آن را دارد که فایل پیکربندی را دوباره بررسی کنید.

    اکنون باید فایل پیکربندی را فعال کنیم، در پوشه /etc/nginx/sites-enabled/ باید یک پیوند نمادین (پیوند نمادین) ایجاد کنیم. اگر nginx را "از ابتدا" نصب کرده اید، در این دایرکتوری یک پیوند نمادین به فایل پیش فرض وجود دارد که در بالا توضیح داده شد، اگر به آن نیاز ندارید می توانید آن را حذف کنید. ما به دایرکتوری لازم منتقل می کنیم.

    سی دی /etc/nginx/sites-enabled/
    ما اکنون در دایرکتوری صحیح هستیم. بیایید سیملینک خود را ایجاد کنیم. برای ایجاد، از دستور ln با پرچم -s استفاده کنید، سپس مسیر config پروژه.local خود را مشخص می کنیم.

    sudo ln -s /etc/nginx/sites-available/project.local
    بیایید به سیم پیوند ایجاد شده خود نگاه کنیم.

    برای اطمینان از اینکه هنوز همه چیز را درست انجام می دهیم، دستور را دوباره اجرا می کنیم.

    فایل میزبان ها

    این فایل در /etc/hosts قرار دارد. وجود ورودی ها در آن به شما امکان می دهد nginx را با استفاده از localhost به عنوان دامنه اجرا کنید. در این فایل می توانید نام های مستعار جایگزین اختصاص دهید، به عنوان مثال برای پروژه project.local ما دامنه project.local را اختصاص می دهیم.

    فایل را در ویرایشگر نانو باز کنید.

    sudo nano /etc/hosts
    اطلاعات دیگری در این فایل خواهید داشت، کافی است آن را نادیده بگیرید. شما فقط باید یک خط مانند تصویر من اضافه کنید.

    نصب و راه اندازی php-fpm (>=7.0)

    sudo aptitude php-fpm را نصب کنید
    ما نسخه نصب شده را بررسی می کنیم، البته در اوبونتو 16.04.1 نسخه 7.0 در مخازن است.

    php-fpm7.0 -v

    ما مطمئن می شویم که همه چیز خوب است. بیایید php-fpm را شروع کنیم.

    شروع سرویس sudo php7.0-fpm
    اگر تنظیمات را ویرایش می کنید، فراموش نکنید که دیمون را مجدداً راه اندازی کنید. این کار را انجام می دهد. اما ما به آن نیاز نخواهیم داشت.

    راه اندازی مجدد سرویس sudo php7.0-fpm
    این کار نصب و پیکربندی php-fpm را تکمیل می کند. درست است، همین. این جادو نیست، مسیر سوکت php-fpm قبلاً در فایل پیکربندی مشخص شده است. البته، ممکن است برای توسعه پروژه های شخصی به پسوندهای php نیاز داشته باشید، اما می توانید آن ها را در صورت نیاز تهیه کنید.

    حالا بیایید با پروژه خود به دایرکتوری برویم، من آن را در این مسیر دارم.

    سی دی /home/stavanger/code/project.local
    بیایید به دایرکتوری بالا برویم و مجوزها را روی 777 تنظیم کنیم (یعنی با پروژه project.local خود مجوزهای کامل را به دایرکتوری خواهیم داد). در آینده، این ما را از مشکلات غیر ضروری نجات می دهد.

    سی دی .. sudo chmod -R 777 project.local
    این کار راه اندازی نرم افزار را کامل می کند، بیایید یک فایل آزمایشی در پوشه کاری project.local خود ایجاد کنیم و مطمئن شویم که همه چیز کار می کند. من یک فایل index.php با این محتوا ایجاد خواهم کرد.

    به مرورگر می رویم و می بینیم که همه چیز برای ما خوب کار می کند! مفسر PHP گنجانده شده است.

    با احترام به خوانندگان، استاوانگر.

    وب سرور Nginx یکی از محبوب ترین وب سرورها با عملکرد بسیار بالا و رسیدگی سریع به درخواست های استاتیک کاربران است. هنگامی که به درستی پیکربندی شود، عملکرد بسیار بالایی را می توان از این وب سرور بدست آورد. Nginx فایل‌های استاتیک را خیلی سریع مدیریت می‌کند، چه صفحات html یا دیگر انواع منابع.

    در یکی از مقالات قبلی، قبلاً پیکربندی پارامترهای اصلی آن را در نظر گرفتیم، در همان مقاله می خواهم بیشتر در مورد عملکرد و آماده سازی وب سرور برای استفاده در شرایط جنگی صحبت کنم. در مورد توزیع لینوکس، امروز ما CentOS را در نظر خواهیم گرفت، این سیستم اغلب در سرورها استفاده می شود و ممکن است در راه اندازی Nginx مشکلاتی وجود داشته باشد. در مرحله بعد، راه اندازی Nginx CentOS را در نظر خواهیم گرفت، بیایید در مورد نحوه فعال کردن پشتیبانی کامل از http2، google pagespeed و تنظیم فایل پیکربندی اصلی صحبت کنیم.

    مخازن رسمی CentOS دارای Nginx هستند و به احتمال زیاد قبلاً روی سیستم شما نصب شده است. اما ما می خواهیم سایت با استفاده از پروتکل http2 کار کند که به شما امکان می دهد تمام داده ها را در یک اتصال منتقل کنید و این کارایی را افزایش می دهد. برای کار بر روی http2، باید یک گواهینامه SSL را پیکربندی کنید، اما این قبلاً در مقاله دریافت گواهینامه اجازه رمزگذاری Nginx توضیح داده شده است. اما این همه ماجرا نیست. اکثر مرورگرها اکنون از پروتکل ALPN برای تغییر از SSL معمولی به HTTP2.0 استفاده می کنند و از OpenSSL 1.02 پشتیبانی می شود. در حالی که مخازن فقط OpenSSL 1.01 دارند. بنابراین، ما باید یک نسخه از Nginx را نصب کنیم که با OpenSSL 1.02 ساخته شده است. برای این کار می توان از مخزن شکسته استفاده کرد:

    sudo yum -y yum-utils را نصب کنید
    # sudo yum-config-manager --add-repo https://brouken.com/brouken.repo

    اگر از مخزن EPEL استفاده می کنید، باید مشخص کنید که نیازی به گرفتن Nginx از آن ندارید:

    sudo yum-config-manager --save --setopt=epel.exclude=nginx*;

    اکنون برای نصب نسخه صحیح Nginx کافیست تایپ کنید:

    sudo yum nginx را نصب کنید

    آخرین نسخه Nginx 1.13.2 با پشتیبانی کامل از ALPN نصب خواهد شد. بیایید به تنظیمات بروید.

    2. راه اندازی Nginx

    اولین قدم این است که ساختار فایل پیکربندی را در نظر بگیرید. در نگاه اول، همه چیز در اینجا ممکن است بسیار گیج کننده به نظر برسد، اما همه چیز در آنجا کاملاً منطقی است:

    گزینه های جهانی
    مناسبت ها()
    http(
    سرور(
    محل()
    }
    سرور ()
    }

    ابتدا گزینه های سراسری وجود دارد که پارامترهای اصلی برنامه را تعیین می کند، به عنوان مثال، از کدام کاربری راه اندازی می شود و تعداد فرآیندها. بخش بعدی وجود دارد. مناسبت ها، که توضیح می دهد که Nginx چگونه به اتصالات ورودی پاسخ می دهد و به دنبال آن یک بخش وجود دارد http، که تمام تنظیمات مربوط به عملکرد پروتکل http را ترکیب می کند. شامل یک بخش است سرور، هر بخش مسئولیت یک دامنه جداگانه را دارد، بخش سرور شامل بخش هایی است محل، که هر کدام مسئول URL درخواست خاصی هستند، توجه داشته باشید که مانند آپاچی یک فایل روی سرور نیست، بلکه URL درخواست است.

    تنظیمات اصلی جهانی را در فایل /etc/nginx/nginx.conf انجام خواهیم داد. بعد، در نظر بگیرید که دقیقاً چه چیزی را تغییر خواهیم داد و چه مقادیری مطلوب است. بیایید با گزینه های جهانی شروع کنیم:

    • کاربر- کاربری که سرور تحت نام او راه اندازی می شود باید صاحب دایرکتوری با فایل های سایت باشد و php-fpm باید از طرف او راه اندازی شود.
    • کارگر_فرایندها- تعداد پردازش های Nginx که راه اندازی می شوند باید دقیقاً به اندازه تعداد هسته های شما تنظیم شوند ، به عنوان مثال من 4 هسته دارم.
    • worker_cpu_affinity- این پارامتر به شما امکان می دهد هر فرآیند را به یک هسته پردازشگر جداگانه اختصاص دهید، مقدار را روی auto تنظیم کنید تا خود برنامه انتخاب کند که چه چیزی و چه چیزی به آن متصل شود.
    • worker_rlimit_nofile- حداکثر تعداد فایل هایی که برنامه می تواند باز کند، برای هر اتصال حداقل به دو فایل نیاز دارید و هر فرآیند تعداد اتصالاتی را که شما مشخص کرده اید خواهد داشت، بنابراین فرمول به صورت زیر است: worker_processes* worker_connections* 2، پارامتر worker_connectionsما کمی پایین تر تجزیه و تحلیل خواهیم کرد.
    • pcre_jit- فعال کردن این گزینه برای سرعت بخشیدن به پردازش عبارات منظم با استفاده از کامپایل JIT.

    در بخش رویدادها، باید دو پارامتر را پیکربندی کنید:

    • worker_connections- تعداد اتصالات برای یک فرآیند باید برای پردازش اتصالات ورودی کافی باشد. ابتدا باید بدانیم که چه تعداد از این اتصالات ورودی وجود دارد، برای این ما به آمار در آدرس ip_server/nginx_status نگاه می کنیم. نحوه فعال کردن را در زیر ببینید. در خط Active Connections تعداد اتصالات فعال به سرور را مشاهده می کنیم، همچنین باید در نظر داشته باشید که اتصالات با php-fpm نیز شمارش می شود. در مرحله بعد، به فیلدهای پذیرفته شده و مدیریت شده توجه کنید، اولی اتصالات پردازش شده را نشان می دهد، دومی - تعداد موارد پذیرفته شده را نشان می دهد. از مقادیر باید یکسان باشد. اگر آنها متفاوت باشند، اتصالات کافی وجود ندارد. نمونه ها را ببینید، تصویر اول مشکل است، دوم نظم است. برای پیکربندی من، رقم 200 اتصال ممکن است بهینه باشد (در مجموع 800، با در نظر گرفتن 4 فرآیند):

    • multi_accept- به برنامه اجازه می دهد چندین اتصال را همزمان بپذیرد، همچنین سرعت کار را با تعداد زیادی اتصال افزایش می دهد.
    • accept_mutex- مقدار این پارامتر را خاموش کنید، به طوری که تمام فرآیندها بلافاصله یک اعلان در مورد اتصالات جدید دریافت می کنند.

    همچنین توصیه می شود از دستورالعمل استفاده از epoll در بخش رویدادها استفاده کنید، زیرا این کارآمدترین روش برای مدیریت اتصالات ورودی برای لینوکس است، اما این روش به طور پیش فرض استفاده می شود، بنابراین دلیلی برای اضافه کردن دستی آن نمی بینم. چند پارامتر دیگر را از بخش http در نظر بگیرید:

    • ارسال فایل- از روش ارسال داده های sendfile استفاده کنید. کارآمدترین روش برای لینوکس.
    • tcp_nodelay، tcp_nopush- هدرها و بدنه درخواست را در یک بسته ارسال می کند، کمی سریعتر کار می کند.
    • keepalive_timeout- وقفه زمانی برای حفظ ارتباط با مشتری، اگر اسکریپت های بسیار کند ندارید، 10 ثانیه کافی است، مقدار را تا زمانی که لازم است تنظیم کنید تا کاربر بتواند به سرور متصل شود.
    • reset_timedout_connection- اتصالات را پس از اتمام زمان قطع کنید.
    • open_file_cache- اطلاعات کش در مورد فایل های باز. برای مثال open_file_cache max=200000 inactive=120s; max - حداکثر تعداد فایل ها در کش، زمان ذخیره سازی.
    • open_file_cache_valid- زمانی که باید ارتباط فایل ها را بررسی کنید. به عنوان مثال: open_file_cache_valid 120s;
    • open_file_cache_min_uses- فقط فایل هایی را که به تعداد مشخص باز شده اند، کش کنید.
    • open_file_cache_errors- خطاهای باز کردن فایل را به خاطر بسپارید.
    • if_modified_از زمان- نحوه پردازش هدرهای if-modified-since را تنظیم می کند. با این هدر، اگر صفحه از آخرین باری که مشاهده شده تغییر نکرده باشد، مرورگر می تواند پاسخ 304 را دریافت کند. گزینه هایی وجود دارد - ارسال نشود - خاموش، ارسال اگر زمان دقیقا مطابقت دارد - دقیق، ارسال اگر زمان دقیقاً یا بیشتر مطابقت دارد - قبل از آن.

    تنظیمات nginx conf به این صورت خواهد بود:

    کاربر nginx;
    worker_processes 4;
    worker_cpu_affinity auto;
    worker_rlimit_nofile 10000;
    pcre_jit در;

    error_log /var/log/nginx/error.log warn;
    load_module "modules/ngx_pagespeed.so";

    مناسبت ها (
    multi_accept on;
    accept_mutex off;
    worker_connections 1024;
    }

    ارسال فایل در
    tcp_nopush on;
    tcp_nodelay روشن.

    open_file_cache max=200000 inactive=20s;
    open_file_cache_valid 120s;
    open_file_cache_errors on;

    reset_timedout_connection روشن است.
    client_body_timeout 10;
    keepalive_timeout 65;

    شامل /etc/nginx/sites-enabled.*.conf

    3. راه اندازی http2

    من پیکربندی بخش سرور را با جزئیات شرح نمی دهم، زیرا قبلاً این کار را در مقاله نصب Nginx در اوبونتو انجام دادم و چیزی برای اضافه کردن در اینجا ندارم، پیکربندی SSL یک موضوع نسبتاً گسترده است و همچنین در مقاله جداگانه ای مورد بحث قرار خواهد گرفت. اما برای راه اندازی http2 باید از قبل SSL داشته باشید. در مرحله بعد، فقط دستور گوش دادن را در بخش سرور خود تنظیم کنید:

    listen 194.67.215.125:443 default_server;

    listen 194.67.215.125:443 http2 default_server;

    در اینجا یک راه ساده برای فعال کردن http2 وجود دارد، اگر نسخه صحیح Nginx قبلاً نصب شده باشد.

    4. تنظیم PageSpeed

    Google Pagespeed یک ماژول Nginx است که بهینه‌سازی‌های مختلفی را انجام می‌دهد تا صفحات را سریع‌تر بارگیری کند، وب سرور کارآمدتر کار کند و کاربران احساس راحتی کنند. این شامل ذخیره سازی، بهینه سازی کد html، بهینه سازی تصویر، ترکیب کد جاوا اسکریپت و css و موارد دیگر است. همه اینها در سطح Nginx انجام می شود، بنابراین کارآمدتر از زمانی است که آن را در php انجام دهید. اما یک اشکال وجود دارد، ماژول آخرین هدر اصلاح شده را حذف می کند.

    واقعیت این است که PageSpeed ​​یک خط کش بسیار طولانی برای همه فایل ها تنظیم می کند و هش آن را به نام فایل اضافه می کند. این باعث می‌شود بارگیری منابع بسیار سریع‌تر شود، زیرا مرورگر فقط فایل‌هایی را با هش جدید درخواست می‌کند و LastModified حذف می‌شود تا در صورت تغییر هر فایلی، کاربران بتوانند تغییرات را مشاهده کنند. حالا بیایید نحوه نصب ماژول را بررسی کنیم. ما باید آن را از منبع بسازیم.

    اول build tools رو نصب کن خیلی مهمه اگه نصب نکنی ارور میده و نمیدونی چیکار کنی:

    yum نصب wget gcc cmake unzip gcc-c++ pcre-devel zlib-devel

    منابع Nginx را برای نسخه خود دانلود و استخراج کنید، به عنوان مثال 1.13.3:

    wget -c https://nginx.org/download/nginx-1.13.3.tar.gz
    # tar -xzvf nginx-1.13.3.tar.gz

    راه اندازی سرور nginx شامل بازسازی و جایگزینی برنامه از مخزن نمی شود، ما فقط از این منابع برای ساخت ماژول استفاده می کنیم. منابع PageSpeed ​​را دانلود و استخراج کنید:

    wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
    # unzip v1.12.34.2-stable.zip

    کتابخانه بهینه سازی PageSpeed ​​را دانلود و در پوشه منبع ماژول از حالت فشرده خارج کنید:

    سی دی ngx_pagespeed-1.12.34.2-stable/
    # wget -c https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
    # tar -xvzf 1.12.34.2-x64.tar.gz

    منابع OpenSSL 1.02 را دانلود و استخراج کنید:

    wget -c https://www.openssl.org/source/openssl-1.0.2k.tar.gz -O /opt/lib/$OPENSSL.tar.gz
    # tar xvpzf openssl-1.0.2k.tar.gz

    حالا باید ماژول را بسازیم. ابتدا، بیایید به گزینه هایی که Nginx فعلی با آنها ساخته شده است نگاه کنیم:

    و حالا با Nginx به پوشه می رویم، همه گزینه های دریافتی را جایگزین می کنیم، گزینه --add-dynamic-module را برای PageSpeed، OpenSSL و سعی می کنیم بسازیم:

    سی دی nginx-1.13.3
    # ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx .conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx .pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache /nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path= /var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_dule_module ---http-secure_link_with_module --ub-start --with-http_sub_module --wit h-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic" --with-ld-opt= --with -openssl=$HOME/openssl-1.0.2k --add-dynamic-module=$HOME/ngx_pagespeed-1.12.34.2-stable $(PS_NGX_EXTRA_FLAGS)
    #ساخت

    اگر همه چیز به درستی انجام شد، در خروجی ماژول ngx_pagespeed.so را در پوشه obj دریافت خواهید کرد، باید آن را در پوشه /etc/nginx/modules کپی کنید:

    cp ngx_pagespeed.so /etc/nginx/modules/ngx_pagespeed.so

    یک پوشه برای کش ایجاد کنید:

    mkdir -p /var/ngx_pagespeed_cache
    # chown -R nginx:nginx /var/ngx_pagespeed_cache

    اکنون این خط را اضافه کنید تا ماژول در /etc/nginx/nginx.conf فعال شود:

    load_module "modules/ngx_pagespeed.so";

    Nginx یکی از محبوب ترین وب سرورها در جهان است و برای میزبانی بزرگترین و شلوغ ترین سایت های اینترنت استفاده می شود. Nginx نسبت به آپاچی به شدت منابع کمتری دارد. می توان از آن هم به عنوان وب سرور و هم به عنوان یک پروکسی معکوس (پراکسی معکوس) استفاده کرد.

    در این مقاله، مراحل نصب Nginx بر روی سرور اوبونتو 16.04 شما را بررسی خواهیم کرد.

    قبل از نصب

    قبل از اینکه مراحل این مقاله را دنبال کنید، مطمئن شوید که یک کاربر معمولی غیر روت با امتیازات sudo دارید. می توانید نحوه راه اندازی چنین کاربری در سرور خود را از اینجا بیاموزید.

    پس از ایجاد چنین کاربری، با استفاده از نام کاربری و رمز عبور او وارد سرور شوید. اکنون آماده انجام مراحل این مقاله هستید.

    مرحله 1: نصب وب سرور Nginx

    Nginx در مخازن استاندارد اوبونتو موجود است، بنابراین نصب آن بسیار آسان است.

    از آنجایی که قرار است برای اولین بار در این جلسه از apt استفاده کنیم، اجازه دهید با به روز رسانی لیست بسته محلی شروع کنیم. سپس سرور را نصب کنید:

    • به روز رسانی sudo apt-get
    • sudo apt-get نصب nginx

    در نتیجه اجرای این دستورات، apt-get Nginx و سایر بسته‌های لازم برای کارکرد آن را روی سرور شما نصب می‌کند.

    مرحله 2: راه اندازی فایروال

    قبل از شروع آزمایش Nginx، باید فایروال خود را طوری پیکربندی کنیم که اجازه دسترسی به سرویس را بدهد. هنگام نصب، Nginx خود را در سرویس فایروال ufw ثبت می کند. بنابراین، تنظیم دسترسی بسیار ساده است.

    برای نمایش تنظیمات دسترسی برای برنامه های ثبت شده در ufw دستور را وارد کنید:

    • لیست برنامه sudo ufw

    در نتیجه اجرای این دستور، لیستی از پروفایل های برنامه نمایش داده می شود:

    برنامه های موجود: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

    همانطور که از این خروجی می بینید، سه پروفایل برای Nginx پیکربندی شده است:

    • Nginx Full: این نمایه پورت های 80 (ترافیک وب عادی و رمزگذاری نشده) و 443 (ترافیک با TLS/SSL رمزگذاری شده است) را باز می کند.
    • Nginx HTTP: این نمایه فقط پورت 80 (ترافیک وب عادی و غیر رمزگذاری شده) را باز می کند.
    • Nginx HTTPS: این نمایه فقط پورت 443 را باز می کند (ترافیک با TLS/SSL رمزگذاری می شود).

    توصیه می‌شود ufw را طوری پیکربندی کنید که فقط به ترافیکی اجازه دهد که می‌خواهید به صراحت اجازه دهید. از آنجایی که ما هنوز SSL را برای سرور خود تنظیم نکرده‌ایم، در این مقاله فقط اجازه ترافیک در پورت 80 را می‌دهیم.

    با دستور زیر می توانید این کار را انجام دهید:

    • sudo ufw اجازه می دهد "nginx HTTP"

    با صدور دستور می توانید تغییرات را بررسی کنید:

    • وضعیت sudo ufw

    این باید در خروجی به شکل زیر باشد:

    وضعیت: فعال برای اقدام از ------- ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

    مرحله 3: بررسی وب سرور

    پس از اتمام مراحل نصب، اوبونتو 16.04 به صورت خودکار Nginx را راه اندازی می کند. بنابراین، وب سرور باید از قبل در حال اجرا باشد.

    با اجرای دستور زیر می توانیم این موضوع را تایید کنیم:

    • وضعیت systemctl nginx
    ● nginx.service - یک وب سرور با کارایی بالا و یک سرور پروکسی معکوس بارگیری شد: بارگیری شد (/lib/systemd/system/nginx.service؛ فعال؛ از پیش تعیین شده فروشنده: فعال) فعال: فعال (در حال اجرا) از دوشنبه 18-04-2016 16:14:00 EDT; 4 دقیقه 2 ثانیه پیش PID اصلی: 12857 (nginx) CGroup: /system.slice/nginx.service ├─12857 nginx: فرآیند اصلی /usr/sbin/nginx -g شبح روشن؛ master_process در └─12858 nginx: فرآیند کارگر

    همانطور که از خروجی بالا می بینید، این سرویس در حال اجرا است. با این حال، ما با درخواست یک صفحه وب بررسی خواهیم کرد که کاملاً عملیاتی است.

    برای انجام این کار، می‌توانیم بررسی کنیم که آیا صفحه وب Nginx به صورت پیش‌فرض در هنگام وارد کردن نام دامنه یا آدرس IP سرور نمایش داده می‌شود یا خیر.

    اگر نمی خواهید یک نام دامنه برای سرور خود تنظیم کنید، می توانید از آدرس IP عمومی سرور خود استفاده کنید. اگر آدرس IP عمومی سرور را نمی دانید، می توانید آن آدرس IP را با دستور زیر پیدا کنید:

    • ip addr نشان می دهد eth0 | grep net | awk "( print $2; )" | sed "s/\/.*$//"

    در نتیجه چندین آدرس IP نمایش داده خواهد شد. سعی کنید هر کدام از آنها را در مرورگر قرار دهید.

    راه دیگر برای تعیین آدرس IP شما این است که بررسی کنید سرور شما چگونه از اینترنت قابل مشاهده است:

    • sudo apt-get install curl
    • curl-4 icanhazip.com

    آدرس IP یا نام دامنه به دست آمده را در مرورگر وب خود تایپ کنید. شما باید صفحه پیش فرض Nginx را ببینید.

    http:// domain_name_or_IP_address

    اگر صفحه مشابهی را در مرورگر خود مشاهده کردید، Nginx را با موفقیت نصب کرده اید.

    مرحله 4: مدیریت فرآیند Nginx

    اکنون که Nginx نصب شده است و ما تأیید کردیم که کار می کند، اجازه دهید نگاهی به دستورات اساسی برای مدیریت وب سرور خود بیاندازیم.

    برای متوقف کردن وب سرور، از دستور زیر استفاده کنید:

    • sudo systemctl stop nginx

    برای راه اندازی وب سرور متوقف شده، تایپ کنید:

    • sudo systemctl start nginx

    برای راه اندازی مجدد وب سرور می توانید از دستور زیر استفاده کنید:

    • sudo systemctl nginx را ریستارت کنید

    اگر در Nginx تغییراتی در پیکربندی ایجاد کنید، اغلب می توانید آن را بدون بستن اتصالات مجدداً راه اندازی کنید. برای این کار می توانید از دستور زیر استفاده کنید:

    • sudo systemctl بارگذاری مجدد nginx

    به‌طور پیش‌فرض، Nginx طوری پیکربندی شده است که هنگام راه‌اندازی سرور، به‌طور خودکار شروع به کار کند. اگر به این رفتار وب سرور نیاز ندارید، می توانید آن را با دستور زیر غیرفعال کنید:

    • sudo systemctl nginx را غیرفعال کنید

    برای فعال کردن مجدد راه اندازی Nginx هنگام راه اندازی سرور، وارد کنید:

    • sudo systemctl nginx را فعال می کند

    مرحله 5: فایل ها و دایرکتوری های مهم Nginx

    اکنون که دستورات اساسی برای مدیریت وب سرور را می دانیم، بیایید نگاهی به فهرست ها و فایل های اصلی بیندازیم.

    محتوا

    • /var/www/html: محتوای وب که به طور پیش فرض فقط از صفحه آزمایشی Nginx تشکیل شده است که قبلاً دیدیم، در فهرست /var/www/html قرار دارد. مسیر این دایرکتوری را می توان در فایل های پیکربندی Nginx پیکربندی کرد.

    پیکربندی سرور

    • /etc/nginx: دایرکتوری پیکربندی Nginx. تمام فایل های پیکربندی Nginx در این دایرکتوری قرار دارند.
    • /etc/nginx/nginx.conf: فایل پیکربندی اصلی Nginx. این فایل برای ایجاد تغییرات در پیکربندی جهانی Nginx استفاده می شود.
    • /etc/nginx/sites-available: دایرکتوری که «بلاک‌های سرور» برای هر سایت در آن ذخیره می‌شوند (بلاک‌های سرور تقریباً معادل میزبان‌های مجازی در آپاچی هستند). Nginx از فایل های پیکربندی در این دایرکتوری استفاده نمی کند مگر اینکه به درستی در دایرکتوری فعال شده سایت ها ارجاع داده شوند (به زیر مراجعه کنید). معمولا تمام تنظیمات بلوک سرور در این دایرکتوری انجام می شود و سپس با ایجاد لینک در دایرکتوری دیگر سایت فعال می شود.
    • /etc/nginx/sites-enabled/: بلوک‌های سرور برای سایت‌های فعال در این فهرست ذخیره می‌شوند. این معمولاً با ایجاد پیوندهایی به نمایه های پیکربندی سایت واقع در فهرست سایت های در دسترس به دست می آید.
    • /etc/nginx/snippets: این دایرکتوری حاوی قطعات پیکربندی است که می توان از آنها برای پیکربندی هر سایتی استفاده کرد. قطعات پیکربندی که به طور بالقوه می توانند در چندین فایل پیکربندی استفاده شوند، نامزدهای عالی برای ایجاد این قطعه هستند.

    لاگ های سرور

    • /var/log/nginx/access.log: هر درخواستی برای وب سرور شما در این فایل گزارش نوشته می‌شود، مگر اینکه در تنظیمات Nginx مشخص شده باشد.
    • /var/log/nginx/error.log: هر گونه خطای Nginx در این فایل ثبت می شود.

    نتیجه

    اکنون که یک وب سرور نصب و پیکربندی کرده اید، می توانید انتخاب کنید که چه محتوایی به کاربران ارائه شود و از چه فناوری های دیگری علاوه بر وب سرور استفاده کنید.

    برترین مقالات مرتبط