آنچه در این مقاله میخوانید
- پیش نیاز های لازم برای شروع پیکربندی
- نصب اولیه Nginx بر روی اوبونتو (شروع راهاندازی سرور)
- تنظیم دسترسی فایروال برای اجرای Nginx
- بررسی وضعیت وب سرور Nginx در اوبونتو
- مدیریت سرویس Nginx در اوبونتو
- راه اندازی Server Block برای میزبانی چند دامنه با Nginx (پیشنهاد لیارا)
- آشنایی با فایل ها و دایرکتوری های مهم Nginx
- بهینه سازی عملکرد برای سرور های پر ترافیک
- تنظیم Nginx به عنوان پروکسی معکوس برای اپلیکیشن ها
- عیب یابی خطا های رایج Nginx
- سوالات متداول
- جمع بندی
پیکربندی بلوکهای وبسرور Nginx در اوبونتو برای میزبانی چند دامنه
۲۰ اردیبهشت ۱۴۰۴
Nginx یکی از وب سرورهای محبوب و قدرتمند است که در میزبانی وبسایتهای پربازدید و برنامههای تحت وب از آن استفاده میشود و بسیار کارآمد است. این ابزار سبک و سریع، نه تنها به عنوان یک وب سرور، بلکه به عنوان یک پروکسی معکوس (Reverse Proxy) عمل میکند و توانایی مدیریت حجم بالای ترافیک را با عملکردی بینظیری دارد.
در این راهنما از لیارا قصد خواهیم داشت که نحوه نصب و پیکربندی Nginx بر روی سرور مجازی اوبونتو، تنظیم فایروال، مدیریت فرآیند Nginx و راهاندازی بلاکهای سرور برای میزبانی چندین دامنه را از یک سرور واحد به صورت کامل توضیح دهیم. همراه همیشگی ما باشید.
با سرور ابونتو لیارا، بدون دردسر سرور خود را تنها با چند کلیک مدیریت کنید.
✅ منابع کاملاً اختصاصی و پایدار✅ سرعت بالا و ترافیک نامحدود✅ امنیت پیشرفته و پشتیبانی 24/7
خرید و راهاندازی سرور اوبونتو ساعتی لیارا
آنچه در ادامه خواهید خواند:
- پیش نیاز های لازم برای شروع پیکربندی
- نصب اولیه Nginx بر روی اوبونتو (شروع راه اندازی سرور)
- تنظیم دسترسی فایروال برای اجرای Nginx
- بررسی وضعیت وب سرور Nginx در اوبونتو
- مدیریت سرویس Nginx در اوبونتو
- راه اندازی Server Block برای میزبانی چند دامنه با Nginx (پیشنهاد لیارا)
- آشنایی با فایل ها و دایرکتوری های مهم Nginx
- بهینه سازی عملکرد برای سرور های پر ترافیک
- تنظیم Nginx به عنوان پروکسی معکوس برای اپلیکیشن ها
- عیب یابی خطا های رایج Nginx
- سوالات متداول
- جمع بندی

پیش نیاز های لازم برای شروع پیکربندی
پیش از آنکه شروع کنید، لازم است که بر روی سرور خود یک کاربر معمولی غیر از کاربر روت (root) با قابلیت دسترسیهای sudo را ساخته باشید. همچنین بهتر است که پیش از آنکه به مراحل پایانی برسید، یک دامنه ثبت شده را در اختیار داشته باشید. بعد از آن مراحل زیر را به ترتیب انجام دهید.
نصب اولیه Nginx بر روی اوبونتو (شروع راهاندازی سرور)
Nginx همیشه در مخازن (Repository) پیش فرض اوبونتو موجود است، در مرحله اول میتوانید آن را با استفاده از سیستم مدیریتهای پکیج APT نصب کنید.
از آن جایی که از apt برای اولین بار در این پروژه استفاده میکنید، بهتر است که ابتدا فهرست پکیجهای محلیتان را به روز رسانی کنید تا جدیدترین نسخهها برای شما در دسترس باشد. بعد از آن میتوانید Nginx را نصب کنید. بعد از آنکه فرآیند شما تایید شد، apt نصب Nginx و تمام وابستگیهای مورد نیاز بر روی سرور را شروع میکند.
sudo apt update
sudo apt install nginx
آموزش نصب و راهاندازی فایروال UFW در سرور مجازی اوبونتو به زبان ساده
نصب و راهاندازی فایروال UFW در سرور مجازی اوبونتو
تنظیم دسترسی فایروال برای اجرای Nginx
زمانی که مرحله اول را به درستی انجام دادید، میتوانید در مرحله دو فایروال تان را تنظیم کنید. اما باید در نظر داشته باشید که برای آن که بخواهید عملکرد Nginx را بررسی کنید، باید نرمافزار های فایروال را به نحوه ای تنظیم کنید که اجازه دسترسی به این سرویس را داشته باشد. بعد از آنکه Nginx تان نصب شد، به صورت خودکار خودش به عنوان یک سرویس در UFW آن را ثبت میکند و همین امر نحوه دادن دسترسی را برای شما راحت تر خواهد کرد. اگر نیاز پیدا کردید که خودتان به صورت دستی یک سرویس UFW را راهاندازی کنید از آموزش نصب و راهاندازی فایروال UFW در سرور مجازی اوبونتو به زبان ساده لیارا استفاده و بهره برداری کنید.
برای اینکه بتوانید فهرست پیکربندیهایی که UFW میتواند با آنها کار کند را بررسی کنید از دستور زیر استفاده کنید.
sudo ufw app list
خروجی دستور شما باید به صورت فهرستی از پروفایلهای شناخته شده باشد، به نمونه زیر دقت کنید.
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
همان طور که در خروجی مشاهده کردید، سه پروفایل برای Nginx در این قطعه کد وجود دارد.
- Nginx Full: این پروفایل هر دو پورت 80 (ترافیک معمولی و رمزنگارینشده) و 443 (ترافیک رمزنگاریشده با TLS/SSL) را باز میکند.
- Nginx HTTP: این پروفایل فقط پورت 80 را باز میکند.
- Nginx HTTPS: این پروفایل فقط پورت 443 را باز میکند.
به شما توصیه خواهیم کرد که محدودترین پروفایلی را فعال کنید که با نیازهای شما همگام باشد. در حال حاضر، فقط دسترسی بر روی پورت 80 نیاز خواهیم داشت. برای فعال کردن این دسترسی، از دستور زیر استفاده کنید.
sudo ufw allow 'Nginx HTTP'
برای اینکه اطمینان حاصل کنید که تغییراتی که انجام دادهاید اعمال شدهاند، میتوانید فایروال خود را بررسی کنید.
sudo ufw status
خروجی دستور به شما نشان میدهد که چه مقدار و چه نوع ترافیکی برای شما مجاز شده است.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)

چطور یک برنامهی Node.js را برای محیط تولید روی سرور مجازی اوبونتو Ubuntu راهاندازی کنیم؟
Node.js برای محیط تولید روی سرور مجازی اوبونتو Ubuntu
بررسی وضعیت وب سرور Nginx در اوبونتو
بعد از آن که فرآیند نصب را در مرحله قبل تمام کردید، نوبت به مرحله سوم میرسد که اوبونتو به صورت خودکار Nginx را اجرا کند. بنابراین وب سرور شما باید در این قسمت فعال و در حال اجرا باشد. برای این که مطمئن شوید که سرورتان به صورت صحیح اجرا میشود، با استفاده از systemd
وضعیت آن را بررسی کنید.
systemctl status 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 Fri 2020-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process
در خروجی بالا مشاهده میکنید که، سرویسها با موفقیت تمام راهاندازی شدند. اما باید در نظر داشت که بهترین روش برای بررسی و اطمینان حاصل کردن از عملکرد Nginx، درخواست یکی از صفحات آن است. برای اینکه بتوانید این بررسی را انجام دهید، کافی است که آدرس IP سرور را در مرورگر خود وارد کنید. اگر آدرس IP را نمیدانید، میتوانید از ابزار زیر برای دریافت IP های عمومی استفاده کنید.
curl -4 icanhazip.com
بعد از آنکه، IP مورد نظرتان را دریافت کردید، آن را در مرورگر وارد کنید.
http://your_server_ip
اما اگر صفحه پیش فرض، Nginx را مشاهده کردید، به این معنی است که وب سرور شما به درستی اجرا شده است و آماده مدیریت است.
مدیریت سرویس Nginx در اوبونتو
در این مرحله وب سرور شما فعال شده است. پس با چند دستور پایه آن آشنا شوید، تا در بتوانید از آنها به درستی استفاده کنید.
برای متوقف کردن سرویس:
sudo systemctl stop nginx
برای شروع مجدد سرویس:
sudo systemctl start nginx
برای توقف و شروع مجدد سرویس:
sudo systemctl restart nginx
در شرایطی که تنها تنظیمات پیکربندی تغییر کرده بودند و به اجرای مجدد آن نیازی نخواهد بود از دستور زیر برای اعمال آنها بدون قطعی در اتصال استفاده کنید.
sudo systemctl reload nginx
برای فعال سازی مجدد اجرای خودکار Nginx در زمان بوت:
sudo systemctl enable nginx
با همین چند دستور ساده، شما با دستورات پایه مدیریت سرویس Nginx آشنا شدهاید و آماده هستید که تا وب سایتهایی را با چند دامنه بر روی سرور خود پیکربندی و میزبانیهای لازم را انجام دهید.
آموزش استفاده از psad برای شناسایی و جلوگیری از حملات سایبری در اوبونتو
psad برای جلوگیری از حملات سایبری در اوبونتو
راه اندازی Server Block برای میزبانی چند دامنه با Nginx (پیشنهاد لیارا)
در وب سرور Nginx، میتوانید از Server Block (مشابه Virtual Host در Apache) برای تعریف تنظیمات مستقل و میزبانی چند دامنه روی یک سرور استفاده کنید. در مرحله پیش رو قصد داریم که دامنهای را با نام your_domain
تنظیم کنیم. اما به یاد داشته باشید که شما در پروژه واقعیتان باید این نام را با نام دامنه واقعی خودتان جایگزین کنید your_domain
صرفا جنبه اموزش در این مقاله از لیارا را دارد.
در حالت پیش فرض، در Nginx اوبونتو، یک Server Block فعال است که فایل ها را از مسیر /var/www/html
ارائه میدهد. این روش تنها برای یک سایت کافی است اما اگر چند سایت بر روی سرور خود در اختیار داشته باشید، احتمالا مدیریت آن برای شما کمی دشوارتر خواهد کرد. پس برای جلوگیری از این اشتباه میتوانید به جای تغییر در مسیر پیش فرض، یک ساختار دایرکتوری جدیدی را در مسیر /var/www
برای دامنهی خود بسازید و مسیر پیش فرض را برای مواقعی که درخواست با هیچ سایتی مطابقت های لازم را ندارد، حفظ کنید.
برای ساخت دایرکتوری مربوط به دامنه از دستور زیر استفاده کنید.
sudo mkdir -p /var/www/your_domain/html
بعد از آن میتوانید مالکیت این پوشه را به کاربر فعلیتان واگذار کنید. برای اینکه بتوانید این واگذاری را انجام دهید از دستور زیر استفاده کنید.
sudo chown -R $USER:$USER /var/www/your_domain/html
در شرایطی که مقدار umask
تغییر ندادهاید، سطح دسترسی دایرکتوریها باید به صورت مناسب باشد. با این حال، برای اینکه مطمئن بشوید که سطح دسترسی هایتان که شامل (خواندن، نوشتن و اجرا برای مالک و فقط خواندن و اجرا برای سایر کاربران) به این صورت باشد، دستور زیر را وارد کنید.
sudo chmod -R 755 /var/www/your_domain
بعد از انجام کد بالا، باید یک فایل HTML را در این مسیر بسازید، برای اینکار از ویرایشگر nano
یا هر ویرایشگر دیگری نیز میتوانید استفاده کنید.
sudo nano /var/www/your_domain/html/index.html
در این قسمت فایل شما باز میشود و باید کد زیر را وارد کنید.
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>
برای اینکه بتوانید ذخیرهسازی را انجام دهید و از آن خارج شوید، باید ابتدا کلیدهای Ctrl + X
را فشار دهید و بعد از آن Y
را بزنید زمانی که تمام شد کلید ENTER
را فشار دهید. در این قسمت Nginx باید بتواند که محتوایهای این پوشه را به کاربر ارائه دهد، برای اینکه بتواند این عمل را انجام دهد به یک Server Block نیاز خواهد داشت. به جای ویرایش فایل پیشفرض، توصیه ما این است که یک فایل جدید را در مسیر زیر وارد کنید.
sudo nano /etc/nginx/sites-available/your_domain
بعد از آن کد زیر را در فایل تان وارد کنید.
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
در این تنظمیات، مقدار روت (root) به مسیر جدیدی تغییر پیدا میکند و server_name
نیز با دامنه مورد نظر جایگزین خواهد شد. در این زمان فایلها را با استفاده از یک لینک به دایرکتوری sites-enabled
وصل کنید.
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
نکته قابل توجه: در Nginx، برای فعالسازی Server Block ها معمولاً از Symlink یا لینک نمادین استفاده میشود. این روش مانند ساخت یک میانبر است و میتوانید در مواقع مورد نیاز تان، فایل اصلی را در sites-available
نگه دارید اما به یاد داشته باشید که باید میانبر آن را از sites-enabled
حذف کنید.
اکنون دو Server Block فعال را در اختیار خوهید داشت که هر یک بر اساس دستورات listen
و server_name
پاسخهای لازم را میدهند.
- your_domain: پاسخگوی درخواستهایی با دامنه
your_domain و www.your_domain
خواهد بود. - default: درخواستهایی که با هیچ یک از دامنهها مطابقت ندارند را پاسخ میدهد.
برای جلوگیری از خطای احتمالی حافظهی hash bucket
هنگام اضافه کردن دامنههای بیشتر، لازم است مقدار خاصی را در فایل /etc/nginx/nginx.conf
ویرایش کنید. برای این کار ابتدا باید فایل را باز کنید، برای باز کردن فایل از کد زیر استفاده کنید.
sudo nano /etc/nginx/nginx.conf
بعد از آنکه فایل را باز کردید، دستور زیر را پیدا کرده و علامت #
را از ابتدای آن حذف کنید.
server_names_hash_bucket_size 64;
نکته قابل توجه: قرار دادن علامت #
در ابتدای خطوط در فایلهای تنظیمات، به معنی غیرفعالسازی یا همان کامنت کردن آن خط است. با حذف این علامت، خط مورد نظر دوباره فعال میشود.
بعد از آنکه علامت را از ابتدای آن حذف کردید، فایل را ذخیره کنید و آن را ببندید.
برای آنکه بتوانید بررسی کنید که خطایی در پیکربندی Nginx وجود ندارد، دستور زیر میتواند به شما کمک کند.
sudo nginx -t
اگر خطایی وجود نداشت، برای آنکه بتوانید تغییرات را اعمال کنید، سرویس Nginx را بار دیگر راهاندازی کنید.
sudo systemctl restart nginx
بعد از راهاندازی دوباره، باید دامنه شما را به شما ارائه دهد. برای آنکه بتوانید این عمل را انجام دهید و آن را بررسی کنید، کافی است که آدرس http://your_domain
را در مرورگر باز کنید. اگر همهچیز درست پیش رفته باشد، باید صفحهای مشابه تصویر زیر نمایش داده شود.
آموزش راهاندازی اپلیکیشن وب Go با Docker و Nginx در اوبونتو 22.04
راهاندازی اپلیکیشن وب Go با Docker و Nginx در اوبونتو

همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راهاندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه بهصرفه
خرید سرور مجازی ابری
آشنایی با فایل ها و دایرکتوری های مهم Nginx
دیگر با نحوه مدیریت سرویس Nginx آشنا شدهاید، پیشنهاد لیارا این است که بهتر است چند دقیقه را صرف یادگیری دایرکتوری ها و فایل های مهم آن کنید.
محتوا
/var/www/html: محتوای وب که تنها شامل صفحه پیشفرض Nginx است را نشان میدهد و از دایرکتوری /var/www/html سرور استفاده میکند. این مسیر را میتوان با تغییر فایلهای تنظیمات Nginx تغییر داد.
تنظیمات سرور
- /etc/nginx: دایرکتوری تنظیمات Nginx است و تمام فایلهای تنظیمات Nginx در این قسمت قرار دارند.
- /etc/nginx/nginx.conf: فایل اصلی تنظیمات Nginx است و میتوان این فایل را برای تغییر تنظیمات کلی Nginx و پیکربندی آن تغییر داد.
- /etc/nginx/sites-available/: دایرکتوری که بلوکهای سرور برای هر سایت در آن ذخیره میشوند است. Nginx از فایلهای تنظیماتی که در این دایرکتوری قرار دارند، استفاده نمیکند مگر اینکه آنها را به دایرکتوری sites-enabled پیوند دهید. معمولا تمام تنظیمات مربوط به بلوکهای سرور در این دایرکتوری انجام میشود و سپس با پیوند به دایرکتوری دیگر فعال میشود.
- /etc/nginx/sites-enabled/: دایرکتوریای که بلوکهای سرور فعال در آن ذخیره میشود. معمولا این فایلها با پیوند به فایلهای موجود در دایرکتوری
sites-available
ساخته میشوند. - /etc/nginx/snippets: دایرکتوریای که شامل قطعات کد قابل استفاده در دیگر بخشهای تنظیمات Nginx است میباشد. بخشهایی از تنظیمات که قابلیت استفاده مجدد دارند، میتوانند در این قسمت قرار بگیرند.
لاگ های سرور
- /var/log/nginx/access.log: هر درخواستی که به وبسرور ارسال میشود، در این فایل لاگ ذخیره میشود، مگر اینکه Nginx به صورتی تنظیم شده باشد که خلاف این عمل کند.
- /var/log/nginx/error.log: خطاهای Nginx در این فایل لاگ ذخیره میشوند.
بهینه سازی عملکرد برای سرور های پر ترافیک
در این قسمت، تکنیکهای پیشرفتهای را برای بهینهسازی، عملکرد سرور Nginx، به خصوص برای سایتهای پر ترافیک خواهیم پرداخت. تکنیکهایی که در ادامه به آن خواهیم پرداخت شامل متعادل سازی بار، کشینگ (Caching) و تنظیمات بهینه یازی پیکربندی سرور است. با پیادهسازی این استراتژیها، میتوانید مطمئن شوید که سرورهای شما قادر هستند که تعداد زیادی از درخواستها را به صورت هم زمان و کار آمد پردازش کنند.
متعادل سازی بار (Load Balancing)
از توزیع ترافیک شبکه ورودی بین چند سرور پشتیبان برای جلوگیری از بار زیاد بر روی یک سرور استفاده میشود. این کار میتواند با استفاده از یک لود بالانسر (Load Balancing) مانند HAProxy یا خود Nginx انجام شود.
کشینگ (Caching)
ذخیره دادههای پرکاربرد در یک کش (Cach) به منظور کاهش نیاز به دریافت دوباره آنها از منبع اصلی میباشد. برای این منظور میتوانید از کشهایی مانند Redis یا Memcached استفاده کنید و تنظیمات Nginx را برای استفاده از آنها پیکربندی کنید.
تنظیمات بهینه سازی سرور (Server Configuration Tuning)
برای تنظیم مقادیر مختلف سرور، میتوانید از افزایش تعداد پردازشگرهای کاری یا تنظیم اندازه بافرها (Buffer) استفاده کنید. این کار با تغییر فایلهای تنظیمات Nginx و تنظیم مقادیری مانند تعداد پردازشگرهای کاری، اندازه بافرها (Buffer) بر اساس نیازهای سرور و ترافیکتان انجام دهید.
نحوه نصب اپلیکیشنهای وب با Cloudron در سرور مجازی اوبونتو
نصب اپلیکیشنهای وب با Cloudron در سرور مجازی اوبونتو
تنظیم Nginx به عنوان پروکسی معکوس برای اپلیکیشن ها
Nginx میتواند به عنوان یک پروکسی معکوس (Reverse Proxy) در مسیر یابی درخواستها به اپلیکیشنها یا سرویسهای مختلف عمل کند. این امر زمانی مفید است که چندین اپلیکیشن بر روی یک سرور اجرا شود و بخواهید آنها را به صورت یکپارچه مدیریت کنید.
برای اینکه بتوانید Nginx را به عنوان پروکسی معکوس (Reverse Proxy) تنظیم کنید، باید یک بلوک سرور را در دایکتوری sites-available
بسازید و آن را برای گوش دادن به درخواستها در پورت مشخص و تنظیم کنید. بعد از آن از دستور proxy_pass برای ارسال درخواستها به اپلیکیشن یا سرویس مناسب استفاده کنید.
به عنوان مثال، اگر اپلیکیشن Node.js شما روی پورت 3000 اجرا میشود، میتوانید یک بلوک سرور مانند مثال زیر را ایجاد کنید.
/etc/nginx/sites-available/nodejs
server {
listen 80;
server_name your_domain;
location / {
proxy_pass http://localhost:3000;
}
}
“برای تنظیم Reverse Proxy با استفاده از Nginx میتوانید از مستندات لیارا استفاده کنید.”
عیب یابی خطا های رایج Nginx
اگر در زمان کار کردن با Nginx دچار خطاهایی شدید که حل کردن آنها برای شما دشوار بود، میتوانید از این بخش چند خطای رایج Nginx را بشناسید و در زمان مواجه با آن دچار سر درگمی نشوید.
خطای “403 Forbidden”
این خطا در زمانی رخ میدهد که Nginx شما دسترسی به منبع درخواستی را رد میکند. این خطا ممکن است که به دلیل نادرست بودن مجوزهای فایل یا دایرکتوریها باشد. در مواقعی اگر کاربر Nginx اجازه دسترسی به محتوا را نداشته باشد هم این خطا رخ میدهد.
حل خطای “403 Forbidden”: برای رفع خطا مطمئن شوید که کاربر Nginx مجوزهای درستی را برای دسترسی به محتوا در اختیار داشته باشد. برای این منظور میتوانید از دستور زیر استفاده کنید.
sudo chown -R www-data:www-data /var/www/html
خطای “502 Bad Gateway”
این خطا در زمانی رخ میدهد که Nginx به عنوان پروکسی معکوس (Reverse Proxy) عمل کرده است و سرور پشتیبان پاسخی را به آن نمیدهد. این وضعیت ممکن است که به دلیل پیکربندی نادرست سرور پشتیبان یا عدم اجرای آن باشد.
حل خطای “502 Bad Gateway”: برای حل کردن این خطا، ابتدا باید وضعیت سرور پشتیبان را بررسی کنید و اطمنیان حاصل کنید که به درستی در حال اجرا باشد. اگر سرور پشتیبان در حال اجرا باسد، پیکربندی فایل های Nginx را برای هرگونه خطا در دستور proxy_pass بررسی کنید.
خطای “504 Gateway Timeout”
خطای Gateway Timeout در زمانی اتفاق میافتد که Nginx به عنوان پروکسی معکوس (Reverse Proxy) عمل کند و سرور پشتیبان مدت زمان زیادی را برای پاسخ دهی به آن طی کنید. این خطا امکان دارد که به دلیل کند بودن سرور پشتیبان یا تنظیمات تایم اوت (Tim Out) کم در فایلهای پیکربندی Nginx باشد.
حل خطای “504 Gateway Timeout”: برای حل این مشکل مقادیر تایم اوت (Tim Out) در فایل های پیکربندی Nginx را افزایش دهید. به عنوان مثال میتوانید خطوط زیر را به بلوک سرور خود اضافه کنید.
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
این خطوط تایماوتها را به 300 ثانیه افزایش میدهند.
با درک دلایل این خطاهای رایج Nginx و اعمال راهحلهای ارائهشده، میتوانید به سرعت مشکلات سرور Nginx خود را عیبیابی و رفع کنید.
آموزش ساخت برنامه Ruby on Rails روی اوبونتو 22.04
ساخت برنامه Ruby on Rails روی اوبونتو 22.04
سوالات متداول
در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جوابهای کوتاه اما مفیدی دادهایم که با استفاده از آن میتوانید به سوال خود پاسخ صحیحی را بدهید.
تفاوت بین دایرکتوری های sites-available و sites-enabled در Nginx چیست؟
دایرکتوری sites-available
محلی برای نگهداری تنظیمات بلوکهای سرور (Server Blocks) است که هنوز فعال نشدهاند. اما فایلهایی که در sites-enabled
قرار میگیرند، فعال هستند و توسط Nginx اجرا میشوند. معمولاً از دستور ln -s
برای ساخت لینک بین این دو استفاده میشود تا یک سایت فعال شود.
چطور می توانم دامنه ام را در Nginx به اپلیکیشن Node.js متصل کنم؟
برای این کار باید یک فایل تنظیمات در sites-available
بسازید و با استفاده از دستور proxy_pass
، درخواستها را به پورت Node.js (مانند 3000) هدایت کنید. بعد از آن با ساخت لینک به sites-enabled
آن را فعال کنید و در پایان Nginx را راهاندازی کنید.
دلیل خطای “403 Forbidden” در Nginx چیست و چطور باید رفع شود؟
این خطا معمولاً به دلیل نداشتن دسترسی مناسب فایل یا دایرکتوری است. باید مطمئن شوید که فایلها و پوشههای مربوطه متعلق به کاربر Nginx (معمولاً www-data
) هستند. برای رفع این خطا میتوانید از دستور زیر استفاده کنید.
sudo chown -R www-data:www-data /var/www/html
چطور می توانم کش (Cache) را در Nginx فعال کنم؟
برای فعالسازی کش در Nginx، میتوانید از تنظیماتی مثل proxy_cache
استفاده کنید یا از ابزارهای جانبی مثل Redis یا Memcached استفاده کنید. کش باعث افزایش سرعت بارگذاری و کاهش فشار روی سرور میشود.
چگونه می توانم از طریق لاگ های Nginx مشکلات را بررسی و رفع کنم؟
- لاگهای Nginx برای درخواستها در مسیر
/var/log/nginx/access.log
قرار دارد. - لاگهای Nginx برای خطاها در مسیر
/var/log/nginx/error.log
قرار دارد.
با بررسی این فایلها میتوان دلیل بسیاری از خطاها و عملکرد نادرست سایت را پیدا کنید.
جمع بندی
در این آموزش از لیارا، با ساختار فایلها و دایرکتوریهای مهم Nginx آشنا شدید و یاد گرفتید چگونه با استفاده از Server Block ها، چند دامنه را بر روی یک سرور راهاندازی کنید. همچنین روشهای افزایش عملکرد سرور برای ترافیک بالا، راهاندازی Reverse Proxy و خطاهای رایج مانند 403 و 502 را بررسی کردیم. حال میتوانید Nginx را حرفهایتر مدیریت کنید و بهینهسازیهای لازم را برای پروژههای خود انجام دهید.
چطور با استفاده از Fail2Ban در اوبونتو 22.04 از سرور Nginx خود محافظت کنیم!
نحوه محافظت از سرور Nginx با Fail2Ban در اوبونتو 22.04