نصب NginX در اوبونتو 22.04 معمولا یک نیاز اصلی برای برنامههای SaaS و پروژههای داخلی است که به یک سرور پروکسی معکوس نیاز دارند. NginX یک سرور سبک منبع باز است که عملکردی به خوبی یک وب سرور و یک پروکسی معکوس را ارائه میدهد. با نصب NginX همچنین میتوانید پروتکلهای ایمیل (SMTP، POP3 و IMAP) و عملیات صندوق ورودی (Inbox) را مدیریت کنید.
انجین ایکس یک سرور پکیج همهکاره است که تقریبا 35 درصد از وبسایتهای امروزی از آن بهره میبرند. با در نظر گرفتن این عدد میتوانید درک بهتری از میزان انعطافپذیری و قابلیت سفارشیسازی NginX داشته باشید.
در این مقاله، نحوه نصب انجین ایکس در اوبونتو را در قالب چند گام ساده که بهراحتی در سرور اوبونتو 22.04 شما قابل پیادهسازی است توضیح میدهیم. اما قبل از آن، NginX را بهطور خلاصه معرفی میکنیم تا بتوانید مزایایی که انجین ایکس برای پروژههای شما به ارمغان میآورد را بهتر درک کنید.
آشنایی مختصر با NginX
انجین ایکس یک وب سرور با ویژگیهای مختلف و با معماری سبک است که بهدلیل سرعت، اثربخشی و قابلیت گسترش آن شناخته شده است. بهدلیل ظرفیت مدیریت بارهای ترافیکی سنگین با حداقل مصرف منابع، توسعهدهندگان آن را بهعنوان گزینهای برای میزبانی وبسایتها و ارائه اپلیکیشنهای آنلاین ترجیح میدهند.
انجین ایکس دارای یک معماری رویداد محور است که میتواند چندین درخواست را در یک رشته (Thread) مدیریت کند. در مقابل، آپاچی (نزدیکترین رقیب انجین ایکس) برای هر درخواست یک رشته ایجاد میکند. در نتیجه این درخواستهای متعدد (طراحی تک رشتهای)، انجین ایکس عملکرد پایدار در پاسخگویی به حجم بالای درخواستهای کاربر حفظ میکند. در برخی ارزیابیها، NginX با ضریب 2.5 عملکرد بهتری از Apache با مشخصات مصرف منابع مشابه دارد.
اکنون که میدانید NginX یک انتخاب عالی برای پروژههای شماست، در ادامه پیشنیازهای نصب NginX در اوبونتو را میبینیم.
پیشنیازهای راهاندازی و نصب NginX در اوبونتو 22.04
قبل از اینکه بتوانید انجین ایکس را روی سرور مجازی لینوکس اوبونتو خود نصب کنید، به موارد زیر نیاز دارید:
- یک سرور با سیستمعامل اوبنتو 22.04
- یک اکانت غیر روت با امتیاز sudo
نصب NginX در اوبونتو 22.04
اکنون که پیشنیازها را تامین کردهایدف به جزئیات نحوه نصب NginX روی سرور اوبونتو میپردازیم.
مرحله اول) پکیج NginX را نصب کنید
خبر خوب این است که انجین ایکس در فهرست بسته پیشفرض اوبونتو گنجانده شده است. بنابراین، برای دریافت آخرین بسته NginX از مخازن پیشفرض اوبونتو، فقط باید فهرست بسته APT را بهروز کنید.
با بهروزرسانی فهرست بسته APT با دستور زیر فرایند را شروع کنید:
#sudo apt update
وقتی دستور به پایان رسید، آخرین بسته NginX را روی سرور داریم. سپس سرور NginX را با دستور زیر نصب میکنیم:
sudo apt install nginx
مرحله دوم) وضعیت فایروال را بررسی کنید
اکنون که NginX را روی سرور اوبونتو نصب کردهاید، مرحله بعدی پیکربندی فایروال سرور برای اجازه دادن به ترافیک به پروسه انجین ایکس است.
از آنجایی که NginX یک سرور پکیج محبوب است، نصب معمولا سرویس NginX را با فایروال سیستم ثبت میکند.
با این حال، شما همیشه باید بررسی کنید که سرویس NginX واقعا در فایروال ثبت شده است و اجازه میدهد تا ترافیک ورودی به سرویس NginX.
برای این کار از دستور زیر استفاده کنید:
sudo ufw app list
سپس با دستور زیر وضعیت سرویس را دریافت کنید که وضعیت سرویس NginX را برجسته میکند.
sudo ufw status
مرحله سوم) وب سرور را بررسی کنید
رفتار پیشفرض اوبونتو برای راهاندازی سرویسهایی مانند انجین ایکس در حین نصب و راهاندازی سرور، در بین نسخهها نسبتا سازگار است. بااینحال، در اکثر فرایندهای نصب اوبونتو، وب سرور NginX بهطور خودکار در پایان فرایند نصب شروع نمیشود.
بنابراین، شما باید سرویس NginX را بهصورت دستی با دستور زیر راهاندازی کنید:
sudo systemctl start nginx
برای بررسی وضعیت سرویسی که توسط systemd (یک سیستم init) مدیریت میشود (از جمله انجین ایکس)، از دستور زیر استفاده کنید:
systemctl status nginx
هنگامی که انجین ایکس روی سرور اوبونتو نصب و اجرا شد، میتوانید به لندینگ پیج پیشفرض NginX دسترسی پیدا کنید تا مطمئن شوید که همه چیز بهدرستی کار میکند. به این منظور، با وارد کردن URL زیر در نوار آدرس، به لندینگ پیج انجین ایکس در مرورگر خود دسترسی پیدا کنید:
http://your_server_ip
اگر چیزی شبیه به موارد زیر مشاهده کردید، NginX بهدرستی بر روی سرور اوبونتوی شما نصب شده است.
مدیریت NGINX Process پس از نصب NginX
اکنون که انجین ایکس را روی سرور اوبونتوی خود نصب کردهاید، میتوانید پروسه NginX را برای انجام تنظیمات و مدیریت فعالیتها مدیریت کنید.
در اینجا متوجه خواهید شد که بسیاری از دستورات از دستور « systemctl» استفاده میکنند و این دستور با system تعامل دارد.
وضعیت سرویس NginX را بررسی کنید:
sudo systemctl status nginx
NGINX Process را آغاز کنید
برای شروع پروسه NginX از دستور زیر استفاده کنید:
sudo systemctl start nginx
NGINX Process را ریستارت کنید
برای ریستارت کردن پروسه NginX از دستور زیر استفاده کنید:
sudo systemctl restart nginx
NGINX Process را مجددا بارگذاری کنید
از دستور زیر برای ریستارت کردن NGINX Process استفاده کنید. توجه داشته باشید که در حین ریستارت کردن، این دستور تمام پیکربندیها را بدون حذف اتصالات Reload یا بارگذاری مجدد میکند:
sudo systemctl reload nginx
NGINX Service را در بوت سرور فعال کنید
هنگام راهاندازی یا ریبوت کردن سرور، از دستور زیر برای شروع NGINX Process استفاده کنید:
sudo systemctl enable nginx
NGINX Service را متوقف کنید
برای توقف NGINX Service از دستور زیر استفاده کنید:
sudo systemctl stop nginx
NGINX Service را در بوت سرور غیرفعال کنید
برای غیرفعال کردن NGINX Service در بوت سرور از دستور زیر استفاده کنید
sudo systemctl disable nginx
توجه داشته باشید که هر زمان فایلهای پیکربندی سرور NginX را تغییر میدهید، همیشه باید بهجای ریستارت کردن NGINX Service، آن را Reload کنید. این تنظیمات با حفظ اتصالات موجود بدون ایجاد اختلال در تجربه کاربر، پیکربندی سرور را نوسازی (Refresh) میکند.
انجام تنظیمات بلوکهای سرور
راهاندازی بلوکهای سرور (Server Blocks) که در سایر سرورهای وب بهعنوان میزبانهای مجازی یا vHosts شناخته می شود، در انجین ایکس این امکان را به شما میدهد تا چندین وبسایت یا اپلیکیشن را بر روی یک سرور میزبانی کنید. هر وبسایت میتواند دامنه یا آدرس IP مخصوص به خود را داشته باشد.
در اینجا میتوانید راهنمای گامبهگام برای انجام تنظیمات بلوکهای سرور هنگام نصب NginX بر روی سرور اوبونتو را مشاهده کنید:
مرحله اول) دایرکتوریهای مورد نیاز را ایجاد کنید
برای هر وبسایتی که میخواهید میزبانی کنید که دایرکتوری را ایجاد کنید.
بهعنوان مثال، دستورات زیر دایرکتوریهای جداگانهای برای دو وبسایت test.com و test2.com ایجاد میکنند:
sudo mkdir -p /var/www/test.com sudo mkdir -p /var/www/test2.com
مرحله دوم) مجوزهای مناسب را اختصاص دهید
باید مطمئن شوید که کاربر NginX (معمولا www-data) مجوزهای لازم برای دسترسی به فهرستهای وبسایت را دارد. به این منظور از دستورات زیر استفاده کنید:
sudo chown -R www-data:www-data /var/www/test.com sudo chown -R www-data:www-data /var/www/test2.com
مرحله سوم) فایلهای پیکربندی را ایجاد کنید
در مرحله بعد، به دایرکتوری sites-available انجین ایکس بروید:
cd /etc/nginx/sites-available
در این فهرست، برای هر سایتی که میخواهید میزبانی کنید، یک فایل پیکربندی جدید ایجاد کنید. توصیه میکنیم از نام دامنه سایت بهعنوان نام فایل استفاده کنید.
مثلا:
sudo nano test.com
مرحله چهارم) بلوک سرور را پیکربندی کنید
در اینجا میتوانید محتویات یک فایل پیکربندی ساده برای بلوک سرور را برای سایت test.com ببینید:
میتوانید از این فایل بهعنوان یک قالب استفاده کرده و آن را مطابق با نیازتان تنظیم کنید. فراموش نکنید که test.com را با نام دامنه واقعی خود جایگزین کنید:
server { listen 80; listen [::]:80; server_name test.com www.test.com; root /var/www/test.com; index index.html; location / { try_files $uri $uri/ =404; } }
وقتی کارتان تمام شد، فراموش نکنید که فایل را ذخیره کرده و ببندید.
مرحله پنجم) یک پیوند نمادین ایجاد کنید
برای فعال کردن بلوک سرور، از دستور زیر برای ایجاد یک پیوند نمادین به فهرست سایتهای فعال استفاده کنید:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
مرحله ششم) تنظیمات پیشفرض را غیرفعال کنید
بهطور پیشفرض، انجین ایکس با یک فایل پیکربندی پیشفرض ارائه میشود. اگر به آن نیاز ندارید، ما قویا توصیه میکنیم آن را غیرفعال کنید تا از هرگونه تضاد بین فایلهای پیکربندی جلوگیری شود:
sudo unlink /etc/nginx/sites-enabled/default
مرحله هفتم) پیکربندی را امتحان کرده و NGINX Service را ریستارت کنید
قبل از استفاده از فایل پیکربندی جدید، بسیار مهم است که فایل پیکربندی NginX را برای خطاهای سینتکس آزمایش کنید:
sudo nginx -t
اگر این تست موفقیتآمیز بود، میتوانید انجین ایکس را ریستارت کنید تا تغییرات اعمال شود:
sudo systemctl restart nginx
مرحله هشتم) تکرار مراحل برای سایتهای دیگر
مراحل سوم تا هفتم را برای هر وبسایت دیگری که میخواهید روی همان سرور میزبانی کنید، تکرار کنید.
به یاد داشته باشید که تنظیمات DNS را برای هر دامنه بهروز کنید تا به آدرس IP سرور شما هدایت شود. هنگامی که تنظیمات بلوکهای سرور انجام شد و DNS را بهدرستی پیکربندی کردید، انجین ایکس درخواستهای دریافتی را براساس نام دامنه در هدر HTTP Host به بلوک سرور مناسب هدایت میکند.
فایلها و دایرکتوری مهم NginX
آشنایی داشتن با فایلها و دایرکتوریهای حیاتی که حاوی فایلهای پیکربندی و دادههای مرتبط هستند جنبه مهمی از کار کردن با انجین ایکس است.
در این بخش میتوانید با فایلها و دایرکتوریهای کلیدی NginX آشنا شوید:
فایل پیکربندی اصلی NGINX
مسیر فایل:
/etc/nginx/nginx.conf
این فایل پیکربندی اصلی انجین ایکس است و شامل دستورالعملهای مربوط به تنظیمات عمومی، پروسههای Worker، ثبت خطا و سایر تنظیمات ضروری میشود.
دایرکتوری پیکربندی سایتهای NGINX
مسیر دایرکتوری:
/etc/nginx/sites-available
این دایرکتوری حاوی فایلهای پیکربندی جداگانه برای هر بلوک سرور (میزبان مجازی) تعریفشده روی سرور است. این فایلها تنظیمات مربوط به وبسایتها یا برنامههای مختلف میزبانیشده روی سرور را مشخص میکنند. همچنین میتوانید وبسایت و اپلیکیشن خود را بر روی یک VPS کارآمد مانند سرور مجازی آلمان میزبانی کنید.
دایرکتوری سایتهای فعالشده انجین ایکس
مسیر دایرکتوری:
/etc/nginx/sites-enabled
این دایرکتوری حاوی پیوندهای نمادین به فایلهای پیکربندی در فهرست سایتهای موجود است. NginX فایلهای پیکربندی را در این دایرکتوری ذخیره میکند و برای روشن یا خاموش کردن بلوکهای سرور خاص از آنها استفاده میکند.
دایرکتوری روت HTML انجین ایکس
مسیر دایرکتوری:
/var/www/html
این دایرکتوری پیشفرض روت است که فایلهای وب برای بلوک سرور پیشفرض در آن ذخیره میشوند. وقتی مستقیما به آدرس IP سرور دسترسی پیدا میکنید، NginX فایلها را از این مکان ارائه میدهد.
دایرکتوری ماژولهای NginX
مسیر دایرکتوری:
/etc/nginx/modules-available
ماژولهای انجین ایکس از این دایرکتوری نصب و مدیریت میشوند. معمولا فایل پیکربندی هر ماژول در این دایرکتوری نگه داشته میشود.
دایرکتوری لاگهای NginX
مسیر دایرکتوری:
/var/log/nginx
انجین ایکس فایلهای لاگ را در این دایرکتوری ذخیره میکند. این دایرکتوری شامل گزارشهای دسترسی و خطاها است که برای عیبیابی و نظارت بر وب سرور NginX ضروری هستند.
دایرکتوری FastCGI Cache
مسیر دایرکتوری:
/var/cache/nginx
اگر ویژگی کشینگ FastCGI فعال باشد، NginX دادههای کششده را در این دایرکتوری ذخیره میکند. ذخیرهسازی FastCGI میتواند بهطور قابل توجهی عملکرد وبسایتهای پویا را بهبود بخشد.
فایل NGINX PID
مسیر فایل:
/run/nginx.pid
این فایل حاوی شناسه فرایند اولیه (PID) پروسه NginX است. ابزارها و فرایندهای سیستم از این اطلاعات برای مدیریت و کنترل پروسه NginX استفاده میکنند.
جمعبندی
NginX یک وب سرور قدرتمند و پرکابرد است که بهدلیل عملکرد، مقیاسپذیری و تطبیقپذیری آن بسیار محبوب است. توسعهدهندگان معمولا علاوهبر نقش اساسی آن بهعنوان یک وب سرور، از آن بهعنوان یک پروکسی معکوس، متعادلکننده بار و کش HTTP استفاده میکنند. معماری ناهمزمان و رویداد محور NginX به آن اجازه میدهد تا بسیاری از اتصالات همزمان را بهطور موثر مدیریت کند. این وضوع باعث میشود تا انجین ایکس برای وبسایتها اپلیکیشنهای پربازدید یک گزینه ایدهآل باشد.
سوالات متداول
NginX چیست؟
انجین ایکس یک نرمافزار وب سرور محبوب و پرکاربرد است که میتواند بهعنوان یک پروکسی معکوس، متعادلکننده بار و کش HTTP نیز استفاده شود. NginX بهدلیل عملکرد بالا و مقیاسپذیری، محبوبیت زیادی دارد.
چه سیستمعاملهایی از نصب NginX پشتیبانی میکنند؟
انجین ایکس بر روی سیستمعاملهای مختلفی از جمله لینوکس، ویندوز، macOS و انواع یونیکس اجرا میشود. این نرمافزار بیشتر در توزیعهای لینوکس برای میزبانی وب استفاده میشود.
چطور از NginX بهعنوان وب سرور استفاده کنیم؟
برای استفاده از انجین ایکس بهعنوان وب سرور، باید آن را برای ارائه محتوای وب خود پیکربندی کنید. این کار شامل ایجاد فایلهای پیکربندی و ایجاد تغییرات لازم در آنها است.