

Nginx یک سرور وب و پروکسی معکوس (reverse proxy) قدرتمند و پرکاربرد است که به دلیل کارایی بالا، قابلیت اطمینان و پشتیبانی از تعداد زیادی اتصال همزمان بهطور گستردهای در جهان فناوری اطلاعات استفاده میشود. این سرور وب بهعنوان جایگزینی برای Apache معرفی شد و بهویژه در برنامههایی که نیاز به مدیریت حجم بالای ترافیک دارند، محبوبیت پیدا کرده است. در این مقاله، به شما نشان خواهیم داد که چگونه Nginx را بر روی یک سرور Ubuntu نصب کنید(نصب Nginx) و آن را برای استفاده آماده نمایید.
قبل از شروع فرآیند نصب Nginx، باید از چند پیشنیاز مطمئن شوید:
قبل از نصب Nginx، ابتدا باید سیستم Ubuntu خود را بهروز کنید تا از نصب آخرین نسخههای بستههای نرمافزاری مطمئن شوید. برای انجام این کار، ابتدا وارد سیستم شده و سپس دستور زیر را اجرا کنید:
sudo apt update sudo apt upgrade
این دستورات ابتدا فهرست بستههای موجود را بهروزرسانی میکند و سپس هر بسته نرمافزاری که نیاز به بهروزرسانی دارد را ارتقاء میدهد. پس از اجرای این دستورات، سیستم شما بهروز خواهد بود و آماده نصب Nginx است.
نصب Nginx
برای نصب Nginx، باید از مدیر بسته apt استفاده کنید. دستور زیر را برای نصب Nginx وارد کنید:
sudo apt install nginx
پس از وارد کردن این دستور، مدیر بسته apt بهطور خودکار تمام وابستگیهای مورد نیاز را شناسایی کرده و آنها را همراه با 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 بهدرستی کار میکند، میتوانید آدرس IP سرور خود را در نوار آدرس مرورگر وب وارد کنید. اگر Nginx بهدرستی نصب و پیکربندی شده باشد، باید صفحه خوشآمدگویی پیشفرض Nginx را مشاهده کنید که پیامی مانند زیر دارد:
Welcome to nginx!
این صفحه نشان میدهد که Nginx بهدرستی در حال اجرا است و آماده سرویسدهی به درخواستهای وب است.
یکی از مهمترین وظایف مدیریت یک سرور وب، مدیریت سرویس Nginx است. در این بخش، به برخی از دستورات اصلی که برای مدیریت سرویس Nginx استفاده میشود، میپردازیم.
اگر به هر دلیلی نیاز دارید Nginx را به صورت دستی راهاندازی کنید، میتوانید از دستور زیر استفاده کنید:
sudo systemctl start nginx
برای متوقف کردن Nginx، از دستور زیر استفاده کنید:
sudo systemctl stop nginx
گاهی اوقات نیاز است که تغییرات پیکربندی را اعمال کنید و سپس سرویس Nginx را مجدداً راهاندازی کنید تا این تغییرات اعمال شوند:
sudo systemctl restart nginx
اگر تغییرات کوچکی در فایلهای پیکربندی Nginx انجام دادهاید و نمیخواهید سرویس را بهطور کامل راهاندازی مجدد کنید، میتوانید از دستور زیر برای بارگذاری مجدد پیکربندی بدون قطع سرویس استفاده کنید:
sudo systemctl reload nginx
Nginx بهطور پیشفرض پیکربندی شده است تا به درخواستهای HTTP پاسخ دهد. با این حال، شما ممکن است بخواهید پیکربندیهای بیشتری را برای تطبیق با نیازهای خاص خود انجام دهید.
فایلهای پیکربندی 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 برای رمزنگاری ارتباطات است. در این بخش، نحوه پیکربندی SSL برای وبسایتهای میزبانیشده روی Nginx را توضیح خواهیم داد.
یکی از سادهترین راهها برای دریافت گواهینامه 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 اعمال میکند.
یکی از ویژگیهای مفید Certbot، قابلیت تمدید خودکار گواهینامههای SSL است. برای اطمینان از این که گواهینامههای شما بهطور خودکار تمدید میشوند، میتوانید دستور زیر را اجرا کنید:
sudo certbot renew --dry-run
این دستور یک تست شبیهسازی از فرآیند تمدید را انجام میدهد تا اطمینان حاصل شود که همه چیز بهدرستی پیکربندی شده است. اگر همه چیز درست باشد، گواهینامهها بهطور خودکار هر چند ماه یکبار تمدید میشوند.
پس از نصب و پیکربندی پایه Nginx، ممکن است نیاز داشته باشید تنظیمات پیشرفتهتری را برای بهبود کارایی و امنیت وبسایت خود اعمال کنید. در ادامه به برخی از این تنظیمات اشاره میکنیم.
فشردهسازی محتوا یکی از راههای موثر برای افزایش سرعت بارگذاری صفحات وب است. 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;
کشینگ میتواند عملکرد وبسایت شما را بهبود بخشد و زمان بارگذاری صفحات را کاهش دهد. Nginx قابلیتهای پیشرفتهای برای کشینگ محتوای استاتیک و دینامیک دارد. برای مثال، میتوانید یک کشینگ ساده برای محتواهای استاتیک مانند تصاویر، CSS و JavaScript تنظیم کنید:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 7d; log_not_found off; }
این تنظیمات محتوای استاتیک را به مدت 7 روز در کش نگه میدارد.
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 بهطور خودکار لاگهایی از درخواستهای ورودی و خطاها ثبت میکند. این لاگها در مسیر /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 به آخرین نسخه، میتوانید از دستورات زیر استفاده کنید:
sudo apt update sudo apt upgrade nginx
این دستورات بستههای موجود را بروزرسانی میکنند و آخرین نسخه Nginx را نصب میکنند.
آموزش نصب Nginx در Ubuntu یک فرآیند نسبتا ساده است که با پیروی از مراحل ذکر شده میتوان به راحتی آن را انجام داد. Nginx با ویژگیهای قدرتمند و انعطافپذیری بالا، به یکی از محبوبترین سرورهای وب و پروکسیهای معکوس در جهان تبدیل شده است. با پیکربندی صحیح و مدیریت مناسب، Nginx میتواند به شما در ارائه یک تجربه وب سریع، امن و قابل اعتماد کمک کند.
این راهنمای کامل شما را از نصب اولیه تا پیکربندیهای پیشرفته Nginx هدایت میکند. با این حال، نیازها و شرایط خاص هر سرور میتواند متفاوت باشد، بنابراین همیشه توصیه میشود که مستندات رسمی Nginx و منابع مربوط به Ubuntu را مطالعه کنید و تنظیمات را بر اساس نیازهای خاص خود انجام دهید.
آموزش نصب Nginx در Ubuntu
برای بررسی نسخه نصبشده Nginx بر روی سیستم خود، میتوانید دستور زیر را در ترمینال اجرا کنید:
nginx -v
برای میزبانی یک وبسایت جدید روی Nginx، باید یک فایل پیکربندی جدید در دایرکتوری /etc/nginx/sites-available/
ایجاد کرده و سپس آن را به دایرکتوری sites-enabled
لینک کنید. پس از آن، پیکربندی Nginx را با استفاده از دستور sudo systemctl reload nginx
بارگذاری مجدد کنید.
ممکن است خطاهایی در پیکربندی Nginx وجود داشته باشد. قبل از بارگذاری مجدد Nginx، میتوانید با استفاده از دستور زیر صحت پیکربندی را بررسی کنید:
sudo nginx -t
این دستور هر گونه خطا در پیکربندی را نمایش میدهد.
برای پیکربندی Nginx به عنوان یک پروکسی معکوس، باید از دستور proxy_pass
در فایل پیکربندی Nginx استفاده کنید. برای مثال، در فایل پیکربندی سرور، میتوانید از دستور زیر استفاده کنید:
location / {
proxy_pass http://backend_server;
}
برای حذف Nginx از سیستم Ubuntu خود، میتوانید از دستور زیر استفاده کنید:
sudo apt remove nginx
اگر میخواهید تمام فایلهای پیکربندی و وابستگیها را نیز حذف کنید، از دستور زیر استفاده کنید:
sudo apt purge 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 و دامنه های با پسوند های مختلف در فاماسرور پشتیبانی میشوند.