نویسنده: fema co
15 ژوئن 2020
0 349
نصب Nginx

آموزش نصب Nginx در Ubuntu: راهنمای کامل

Nginx یک سرور وب و پروکسی معکوس (reverse proxy) قدرتمند و پرکاربرد است که به دلیل کارایی بالا، قابلیت اطمینان و پشتیبانی از تعداد زیادی اتصال همزمان به‌طور گسترده‌ای در جهان فناوری اطلاعات استفاده می‌شود. این سرور وب به‌عنوان جایگزینی برای Apache معرفی شد و به‌ویژه در برنامه‌هایی که نیاز به مدیریت حجم بالای ترافیک دارند، محبوبیت پیدا کرده است. در این مقاله، به شما نشان خواهیم داد که چگونه Nginx را بر روی یک سرور Ubuntu نصب کنید(نصب Nginx) و آن را برای استفاده آماده نمایید.

پیش‌نیازها:

قبل از شروع فرآیند نصب Nginx، باید از چند پیش‌نیاز مطمئن شوید:

  1. دسترسی به سرور Ubuntu: شما باید به یک سرور Ubuntu دسترسی داشته باشید. این سرور می‌تواند یک سرور اختصاصی، سرور مجازی یا حتی یک ماشین مجازی روی رایانه شخصی شما باشد.
  2. دسترسی ریشه (Root) یا کاربری با مجوزهای sudo: شما باید دسترسی به یک حساب کاربری با مجوزهای مدیریتی (sudo) داشته باشید.
  3. اتصال به اینترنت: برای نصب و به‌روزرسانی بسته‌های نرم‌افزاری، سرور باید به اینترنت متصل باشد.
در صورتی نیاز میتوانید برای تهیه سرور مجازی با webserver Nginx از لینک زیر بازدید کنید:خرید سرور مجازی

به‌روزرسانی و آماده‌سازی سیستم

قبل از نصب Nginx، ابتدا باید سیستم Ubuntu خود را به‌روز کنید تا از نصب آخرین نسخه‌های بسته‌های نرم‌افزاری مطمئن شوید. برای انجام این کار، ابتدا وارد سیستم شده و سپس دستور زیر را اجرا کنید:

sudo apt update
sudo apt upgrade

این دستورات ابتدا فهرست بسته‌های موجود را به‌روزرسانی می‌کند و سپس هر بسته نرم‌افزاری که نیاز به به‌روزرسانی دارد را ارتقاء می‌دهد. پس از اجرای این دستورات، سیستم شما به‌روز خواهد بود و آماده نصب Nginx است.

نصب Nginx

نصب Nginx

نصب Nginx

برای نصب Nginx، باید از مدیر بسته apt استفاده کنید. دستور زیر را برای نصب Nginx وارد کنید:

sudo apt install nginx

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

بررسی وضعیت Nginx

برای اطمینان از این که Nginx به‌درستی نصب شده و در حال اجرا است، می‌توانید از دستور زیر برای بررسی وضعیت سرویس Nginx استفاده کنید:

sudo systemctl status nginx

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

nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
    Active: active (running) since Tue 2024-09-21 10:34:00 UTC; 3min 15s ago

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

پیکربندی فایروال

اگر سیستم شما از فایروال UFW (Uncomplicated Firewall) استفاده می‌کند، باید اطمینان حاصل کنید که ترافیک وب به Nginx مجاز است. UFW یک ابزار مدیریت فایروال است که به شما اجازه می‌دهد قوانین فایروال را به راحتی پیکربندی و مدیریت کنید.

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

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'

با اجرای این دستورات، پورت‌های 80 (HTTP) و 443 (HTTPS) باز می‌شوند و ترافیک وب به سرور شما هدایت می‌شود. برای اطمینان از فعال بودن این قوانین، می‌توانید وضعیت UFW را با استفاده از دستور زیر بررسی کنید:

sudo ufw status

این دستور باید نشان دهد که قوانین HTTP و HTTPS برای Nginx فعال شده‌اند.

آموزش نصب Nginx در اوبونتو

آموزش نصب Nginx در اوبونتو

بررسی نصب Nginx با استفاده از مرورگر

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

Welcome to nginx!

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

مدیریت سرویس Nginx

یکی از مهم‌ترین وظایف مدیریت یک سرور وب، مدیریت سرویس Nginx است. در این بخش، به برخی از دستورات اصلی که برای مدیریت سرویس Nginx استفاده می‌شود، می‌پردازیم.

شروع سرویس Nginx:

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

sudo systemctl start nginx

توقف سرویس Nginx:

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

sudo systemctl stop nginx

راه‌اندازی مجدد Nginx:

گاهی اوقات نیاز است که تغییرات پیکربندی را اعمال کنید و سپس سرویس Nginx را مجدداً راه‌اندازی کنید تا این تغییرات اعمال شوند:

sudo systemctl restart nginx

بارگذاری مجدد پیکربندی Nginx:

اگر تغییرات کوچکی در فایل‌های پیکربندی Nginx انجام داده‌اید و نمی‌خواهید سرویس را به‌طور کامل راه‌اندازی مجدد کنید، می‌توانید از دستور زیر برای بارگذاری مجدد پیکربندی بدون قطع سرویس استفاده کنید:

sudo systemctl reload nginx

پیکربندی پایه Nginx

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

فایل‌های پیکربندی Nginx:

فایل‌های پیکربندی Nginx در دایرکتوری /etc/nginx/ قرار دارند. فایل اصلی پیکربندی Nginx، nginx.conf است که در مسیر /etc/nginx/nginx.conf قرار دارد. این فایل شامل تنظیمات اصلی سرور است و شما می‌توانید آن را برای پیکربندی‌های پیشرفته‌تر و تنظیمات سفارشی ویرایش کنید.

پیکربندی بلاک‌های سرور:

یکی از مهم‌ترین مفاهیم در پیکربندی Nginx، بلاک‌های سرور (server blocks) است. هر بلاک سرور به‌عنوان یک وب‌سایت یا دامنه جداگانه عمل می‌کند. به عبارت دیگر، اگر شما می‌خواهید چندین وب‌سایت را روی یک سرور میزبانی کنید، باید برای هر وب‌سایت یک بلاک سرور جداگانه تعریف کنید.

فایل‌های پیکربندی بلاک‌های سرور معمولاً در دایرکتوری /etc/nginx/sites-available/ قرار دارند. برای فعال کردن یک بلاک سرور، باید یک لینک به این فایل از دایرکتوری /etc/nginx/sites-enabled/ ایجاد کنید.

به‌عنوان مثال، برای ایجاد یک بلاک سرور جدید، می‌توانید یک فایل پیکربندی جدید به نام example.com در دایرکتوری sites-available ایجاد کنید:

sudo nano /etc/nginx/sites-available/example.com

در این فایل، می‌توانید تنظیمات مربوط به دامنه example.com را وارد کنید، از جمله مسیرهای دسترسی به فایل‌های وب‌سایت و تنظیمات مربوط به SSL.

پس از ایجاد فایل، باید آن را به دایرکتوری sites-enabled لینک کنید:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

در نهایت، برای اعمال تغییرات، باید پیکربندی Nginx را بارگذاری مجدد کنید:

sudo systemctl reload nginx

پیکربندی SSL با Nginx

یکی از موارد مهم در امنیت وب‌سایت‌ها، استفاده از SSL برای رمزنگاری ارتباطات است. در این بخش، نحوه پیکربندی SSL برای وب‌سایت‌های میزبانی‌شده روی Nginx را توضیح خواهیم داد.

دریافت گواهینامه SSL با استفاده از Certbot:

یکی از ساده‌ترین راه‌ها برای دریافت گواهینامه SSL رایگان، استفاده از Certbot است. Certbot ابزاری است که به‌طور خودکار گواهینامه‌های SSL را از Let’s Encrypt دریافت و آنها را بر روی Nginx پیکربندی می‌کند. برای نصب Certbot و افزونه Nginx آن، می‌توانید از دستورات زیر استفاده کنید:

sudo apt install certbot python3-certbot-nginx

پس از نصب، می‌توانید با اجرای دستور زیر گواهینامه SSL را برای دامنه خود دریافت کنید:

sudo certbot --nginx -d example.com -d www.example.com

این دستور Certbot را راه‌اندازی کرده و به‌طور خودکار گواهینامه SSL را برای دامنه‌های مشخص شده دریافت و پیکربندی می‌کند. Certbot همچنین پیکربندی‌های لازم برای استفاده از SSL را در فایل‌های پیکربندی Nginx اعمال می‌کند.

تایید تمدید خودکار گواهینامه SSL:

یکی از ویژگی‌های مفید Certbot، قابلیت تمدید خودکار گواهینامه‌های SSL است. برای اطمینان از این که گواهینامه‌های شما به‌طور خودکار تمدید می‌شوند، می‌توانید دستور زیر را اجرا کنید:

sudo certbot renew --dry-run

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

تنظیمات پیشرفته Nginx

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

فعال‌سازی Gzip Compression:

فشرده‌سازی محتوا یکی از راه‌های موثر برای افزایش سرعت بارگذاری صفحات وب است. Nginx به شما این امکان را می‌دهد تا با فعال‌سازی Gzip، حجم داده‌های ارسال‌شده به مرورگر کاربران را کاهش دهید. برای فعال‌سازی Gzip، کافی است خطوط زیر را در فایل پیکربندی Nginx (به‌عنوان مثال در nginx.conf) اضافه کنید:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

پیکربندی کشینگ (Caching):

کشینگ می‌تواند عملکرد وب‌سایت شما را بهبود بخشد و زمان بارگذاری صفحات را کاهش دهد. Nginx قابلیت‌های پیشرفته‌ای برای کشینگ محتوای استاتیک و دینامیک دارد. برای مثال، می‌توانید یک کشینگ ساده برای محتواهای استاتیک مانند تصاویر، CSS و JavaScript تنظیم کنید:

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

این تنظیمات محتوای استاتیک را به مدت 7 روز در کش نگه می‌دارد.

پیکربندی Load Balancing:

Nginx می‌تواند به‌عنوان یک لود بالانسر (Load Balancer) برای توزیع ترافیک بین چندین سرور وب عمل کند. این قابلیت برای وب‌سایت‌هایی که با حجم بالای ترافیک روبرو هستند، بسیار مفید است. برای پیکربندی لود بالانسینگ، می‌توانید از بلاک‌های upstream و server استفاده کنید:

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

در این مثال، ترافیک ورودی به backend بین دو سرور backend1 و backend2 توزیع می‌شود.

مانیتورینگ و نگهداری Nginx

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

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

ابزارهای متعددی برای مانیتورینگ Nginx وجود دارد که می‌توانند به شما در شناسایی و رفع مشکلات کمک کنند. برخی از این ابزارها عبارتند از:

  • Grafana و Prometheus: این دو ابزار به شما اجازه می‌دهند که متریک‌های مختلف Nginx را در یک داشبورد گرافیکی مشاهده و تحلیل کنید.
  • New Relic: این ابزار نیز یکی از محبوب‌ترین ابزارهای مانیتورینگ است که عملکرد سرور و برنامه‌های وب را در زمان واقعی نظارت می‌کند.
برای نصب Grafana میتوانید به آموزش زیر مراجعه کنید: آموزش نصب Grafana در اوبونتو

بررسی لاگ‌های Nginx:

Nginx به‌طور خودکار لاگ‌هایی از درخواست‌های ورودی و خطاها ثبت می‌کند. این لاگ‌ها در مسیر /var/log/nginx/ ذخیره می‌شوند. لاگ‌های دسترسی (access logs) و خطاها (error logs) می‌توانند به شما در شناسایی مشکلات احتمالی و تحلیل رفتار کاربران کمک کنند. برای مشاهده این لاگ‌ها، می‌توانید از دستوراتی مانند زیر استفاده کنید:

sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

بروزرسانی منظم Nginx:

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

sudo apt update
sudo apt upgrade nginx

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

نتیجه‌گیری

آموزش نصب Nginx در Ubuntu یک فرآیند نسبتا ساده است که با پیروی از مراحل ذکر شده می‌توان به راحتی آن را انجام داد. Nginx با ویژگی‌های قدرتمند و انعطاف‌پذیری بالا، به یکی از محبوب‌ترین سرورهای وب و پروکسی‌های معکوس در جهان تبدیل شده است. با پیکربندی صحیح و مدیریت مناسب، Nginx می‌تواند به شما در ارائه یک تجربه وب سریع، امن و قابل اعتماد کمک کند.

این راهنمای کامل شما را از نصب اولیه تا پیکربندی‌های پیشرفته Nginx هدایت می‌کند. با این حال، نیازها و شرایط خاص هر سرور می‌تواند متفاوت باشد، بنابراین همیشه توصیه می‌شود که مستندات رسمی Nginx و منابع مربوط به Ubuntu را مطالعه کنید و تنظیمات را بر اساس نیازهای خاص خود انجام دهید.

آموزش نصب Nginx در Ubuntu

اشتراک گذاری
+

1. چگونه می‌توانم نسخه نصب‌شده Nginx را بررسی کنم؟

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

nginx -v

+

2. چگونه می‌توانم یک وب‌سایت دیگر را روی Nginx میزبانی کنم؟

برای میزبانی یک وب‌سایت جدید روی Nginx، باید یک فایل پیکربندی جدید در دایرکتوری /etc/nginx/sites-available/ ایجاد کرده و سپس آن را به دایرکتوری sites-enabled لینک کنید. پس از آن، پیکربندی Nginx را با استفاده از دستور sudo systemctl reload nginx بارگذاری مجدد کنید.

+

3. چرا بعد از اعمال تغییرات در فایل‌های پیکربندی، Nginx به درستی کار نمی‌کند؟

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

sudo nginx -t

این دستور هر گونه خطا در پیکربندی را نمایش می‌دهد.

+

4. چگونه می‌توانم Nginx را به عنوان یک پروکسی معکوس پیکربندی کنم؟

برای پیکربندی Nginx به عنوان یک پروکسی معکوس، باید از دستور proxy_pass در فایل پیکربندی Nginx استفاده کنید. برای مثال، در فایل پیکربندی سرور، می‌توانید از دستور زیر استفاده کنید:

location / {
proxy_pass http://backend_server;
}

 

+

5. چگونه می‌توانم Nginx را از سرورم حذف کنم؟

برای حذف Nginx از سیستم Ubuntu خود، می‌توانید از دستور زیر استفاده کنید:

sudo apt remove nginx

اگر می‌خواهید تمام فایل‌های پیکربندی و وابستگی‌ها را نیز حذف کنید، از دستور زیر استفاده کنید:

sudo apt purge nginx

 

+

6. چگونه می‌توانم Nginx را برای بارگذاری محتوا از یک دایرکتوری خاص پیکربندی کنم؟

برای بارگذاری محتوا از یک دایرکتوری خاص، می‌توانید مسیر دایرکتوری را در بلاک سرور Nginx تنظیم کنید. به عنوان مثال:

server {
listen 80;
server_name example.com;

root /var/www/example.com;
index index.html;

location / {
try_files $uri $uri/ =404;
}
}

این پیکربندی باعث می‌شود که Nginx محتوای وب‌سایت را از دایرکتوری /var/www/example.com بارگذاری کند.

منابع:

docs.nginx – فاماسرور

مقالات مرتبط این مطلب پیشنهاد می شود

خدمات فاما سرور

  • سرور مجازی

    سرور مجازی

    سرور مجازی یکی از سرویس های پر استفاده و مقرون بصرفه برای کسب و کارهای کوچک و خدمات سایر در ضمینه IT و شبکه میباشد که توان پشتیبانی از 128 هسته و 512 گیگ رم را دارد.

  • سرور اختصاصی

    سرور اختصاصی

    سرور های اختصاصی فاماسرور از دو گروه نسل جدید و پردازش سنگین استفاده میشود که میتوانید تا 155 گیگاهرتز پردازش و تا 1.5 ترابایت رم را در اختیار داشته باشید.

  • بیگ بلوباتن

    بیگ بلوباتن

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

  • هاست لینوکس

    هاست لینوکس

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

  • هاست ویندوز

    هاست ویندوز

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

  • ثبت دامنه

    ثبت دامنه

    ثبت دامنه های بین المللی , دامنه ir و دامنه های با پسوند های مختلف در فاماسرور پشتیبانی میشوند.