در دنیای امروز که اتوماسیون و خودکارسازی فرآیندها نقش حیاتی در بهرهوری کسبوکارها ایفا میکند، n8n به عنوان یک پلتفرم قدرتمند و متنباز برای اتوماسیون گردش کار شناخته میشود.
این ابزار به کاربران امکان میدهد تا برنامهها، APIها و سرویسهای مختلف را به هم متصل کرده و وظایف پیچیده را به صورت خودکار انجام دهند.
استقرار n8n با Nginx به عنوان Reverse Proxy نه تنها امنیت سرویس را افزایش میدهد، بلکه عملکرد آن را نیز بهینه میسازد.
Nginx به عنوان یک پروکسی معکوس، درخواستهای ورودی را مدیریت کرده و آنها را به سرور n8n هدایت میکند.
این پیکربندی مزایای متعددی از جمله مدیریت بهتر ترافیک، توزیع بار، و امکان استفاده از SSL برای رمزگذاری ارتباطات را فراهم میآورد.
در این راهنما، شما با نحوه پیکربندی n8n Reverse Proxy با استفاده از Nginx آشنا خواهید شد.
این تنظیمات به شما کمک میکند تا نمونه n8n خود را با امنیت بالاتر و عملکرد بهتری در محیط تولید اجرا کنید.
همچنین یاد خواهید گرفت که چگونه با استفاده از Certbot، گواهی SSL رایگان دریافت کرده و ارتباطات را رمزگذاری نمایید.

چرا باید n8n را پشت Nginx قرار دهیم؟
استفاده از Nginx به عنوان Reverse Proxy برای n8n مزایای متعددی در زمینه امنیت، عملکرد و مدیریت ترافیک ارائه میدهد.
Nginx یک سرور وب با عملکرد بالا است که به عنوان یک واسطه بین کاربران و سرورهای بکاند عمل میکند و درخواستهای ورودی را به سرورهای مناسب هدایت میکند.
یکی از مهمترین دلایل استفاده از Nginx برای n8n، افزایش امنیت است.
با قرار دادن n8n پشت Nginx، سرور اصلی شما از دید مستقیم کاربران پنهان میماند و تنها Nginx در معرض اینترنت قرار میگیرد.
این امر خطر حملات مستقیم به n8n را کاهش میدهد و امکان پیادهسازی لایههای امنیتی اضافی را فراهم میکند.
مزایای کلیدی استفاده از Nginx برای n8n شامل:
- افزایش امنیت با مخفیسازی سرور اصلی و امکان پیادهسازی SSL/TLS
- بهبود عملکرد از طریق کش کردن محتوای استاتیک و کاهش بار سرور
- تعادل بار برای توزیع ترافیک بین چندین نمونه n8n
- مدیریت بهتر ترافیک و جلوگیری از overload شدن سرور
- پشتیبانی از WebSocket برای ارتباطات بلادرنگ
- انعطافپذیری بیشتر در پیکربندی و مدیریت
با استفاده از Nginx به عنوان Reverse Proxy برای n8n، میتوانید اتصالات HTTPS را با کمک ابزارهایی مانند Certbot پیادهسازی کنید و امنیت ارتباطات را تضمین نمایید.
این تنظیمات همچنین امکان مدیریت بهتر پورتها و جلوگیری از دسترسی مستقیم به پورت پیشفرض n8n را فراهم میکند.
مزایای امنیتی Nginx برای n8n
استفاده از Nginx Reverse Proxy برای n8n مزایای امنیتی قابل توجهی ارائه میدهد.
Nginx به عنوان یک لایه محافظتی عمل میکند که درخواستهای ورودی را قبل از رسیدن به سرور اصلی n8n فیلتر و مدیریت میکند.
این پیکربندی امکان پنهانسازی پورتهای داخلی n8n را فراهم کرده و دسترسی مستقیم به سرور اصلی را محدود میکند.
یکی از مهمترین مزایای امنیتی، امکان پیکربندی SSL/TLS است که ارتباطات بین کاربران و n8n را رمزگذاری میکند.
Nginx همچنین میتواند حملات DDoS را با محدود کردن نرخ درخواستها کاهش دهد و از سرور n8n در برابر ترافیک مخرب محافظت کند.
این لایه امنیتی اضافی برای n8n امنیت Nginx ضروری است، به خصوص زمانی که n8n در معرض اینترنت قرار دارد.
بهبود عملکرد و بارگذاری
استفاده از Nginx به عنوان Reverse Proxy برای n8n مزایای قابل توجهی در زمینه عملکرد و سرعت بارگذاری ارائه میدهد.
Nginx یک وب سرور با عملکرد بالا است که به دلیل پایداری، ویژگیهای غنی و مصرف منابع کم شناخته شده است.
این ابزار به عنوان یک واسطه بین کلاینتها و سرورهای بکاند عمل میکند و درخواستهای ورودی را به صورت کارآمد مدیریت مینماید.
یکی از مهمترین مزایای استفاده از Nginx برای n8n، قابلیت مدیریت محتوای استاتیک و داینامیک است.
Nginx میتواند محتوای استاتیک را مستقیماً از کش خود سرو کند که این امر زمان بارگذاری را به طور قابل توجهی کاهش میدهد.
برای محتوای داینامیک که نیاز به پردازش بلادرنگ دارند، Nginx درخواستها را به سرور n8n فوروارد میکند.
این معماری باعث کاهش بار روی سرور اصلی n8n و بهبود عملکرد کلی سیستم میشود.
- کاهش زمان بارگذاری با سرو محتوای استاتیک از کش Nginx
- توزیع بار کارآمد بین چندین سرور بکاند
- پشتیبانی از WebSocket برای ارتباطات بلادرنگ
- بهینهسازی تحویل محتوا با استفاده از کشگذاری
- مدیریت کارآمد اتصالات همزمان
- کاهش مصرف منابع سرور اصلی n8n
مدیریت SSL و HTTPS
استفاده از Nginx به عنوان Reverse Proxy برای n8n مزایای متعددی در زمینه مدیریت SSL و HTTPS ارائه میدهد.
Nginx به عنوان یک واسطه امن عمل میکند که تمام ترافیک ورودی را مدیریت کرده و آن را به سرور n8n منتقل میکند.
این رویکرد امکان استفاده از گواهیهای SSL رایگان از Let’s Encrypt را فراهم میآورد و امنیت ارتباطات را تضمین میکند.
با پیکربندی صحیح Nginx، میتوانید تمام درخواستهای HTTP را به HTTPS هدایت کنید و اطمینان حاصل کنید که تمام ارتباطات با n8n رمزگذاری شده است.
این تنظیم همچنین امکان استفاده از کوکیهای امن (Secure Cookies) را در n8n فراهم میکند و محافظت بیشتری در برابر حملات مختلف ارائه میدهد.
ابزارهایی مانند Certbot به صورت خودکار گواهیهای SSL را نصب و تمدید میکنند.

Nginx Reverse Proxy چیست و چگونه کار میکند؟
Nginx Reverse Proxy یک سرور پیکربندی شده است که به عنوان واسطهای بین کلاینتها و سرورهای بکاند عمل میکند.
این سیستم درخواستهای ورودی را بر اساس URL و هدرها بررسی کرده و آنها را به سرورهای مناسب هدایت میکند.
در معماریهای مدرن وب، Nginx نه تنها ترافیک را مدیریت میکند، بلکه عملکرد امنیت و مقیاسپذیری برنامههای وب را نیز بهبود میبخشد.
فرآیند کار Nginx Reverse Proxy با دریافت درخواستهای HTTP از کلاینتها آغاز میشود.
این درخواستها ابتدا به سرور Nginx میرسند و سپس بر اساس جزئیات درخواست مانند URL و هدرها، تصمیمگیری میشود که چگونه پردازش شوند.
برای محتوای استاتیک، Nginx محتوا را مستقیماً از کش خود سرو میدهد که زمان بارگذاری را به طور قابل توجهی کاهش میدهد.
در مقابل، درخواستهای محتوای داینامیک که نیاز به پردازش بلادرنگ دارند، به سرور بکاند مناسب ارسال میشوند.
Nginx از روشهای مختلفی برای تصمیمگیری در مورد ارسال درخواستها به سرورهای بکاند استفاده میکند:
- Round Robin: درخواستها را به طور مساوی بین تمام سرورها توزیع میکند
- Least Connections: درخواستها را به سروری با کمترین اتصالات فعال ارسال میکند
- IP Hash: درخواستها را بر اساس آدرس IP کلاینت تخصیص میدهد
در پیکربندی n8n با Nginx، این سیستم به عنوان یک Reverse Proxy عمل کرده و درخواستها را از دامنه اختصاصی به پورت داخلی n8n (5678) فوروارد میکند.
این تنظیم نه تنها امنیت را افزایش میدهد، بلکه امکان استفاده از SSL و مدیریت بهتر ترافیک را فراهم میسازد.
نحوه مدیریت درخواستها
Nginx به عنوان یک Reverse Proxy نقش حیاتی در مدیریت درخواستهای ورودی ایفا میکند.
این سیستم ابتدا درخواستهای HTTP را از کلاینتها دریافت کرده و سپس بر اساس جزئیات درخواست مانند URL و هدرها، تصمیمگیری میکند که چگونه آنها را مدیریت کند.
برای محتوای استاتیک، Nginx بهطور مستقیم از کش خود محتوا را سرو میدهد که این امر زمان بارگذاری را بهطور چشمگیری کاهش میدهد.
برای محتوای داینامیک که نیاز به پردازش بلادرنگ دارند، Nginx درخواستها را به سرورهای بکاند مناسب فوروارد میکند.
این سیستم از روشهای مختلف Load Balancing مانند Round Robin، Least Connections و IP Hash برای توزیع متعادل ترافیک استفاده میکند.
همچنین با تنظیم هدرهای مناسب مانند X-Forwarded-For و X-Real-IP، اطلاعات لازم درباره درخواست اصلی را به سرورهای بکاند منتقل میکند.
فرآیند تصمیمگیری برای سرورهای بکاند
در پیکربندی Nginx Reverse Proxy، فرآیند تصمیمگیری برای انتخاب سرورهای بکاند بر اساس الگوریتمهای مختلفی انجام میشود که هر کدام برای سناریوهای خاصی مناسب هستند.
این الگوریتمها به صورت هوشمندانه ترافیک را بین سرورهای مختلف توزیع میکنند تا عملکرد بهینهای داشته باشند.
Nginx از روشهای مختلفی برای تصمیمگیری در مورد سرورهای بکاند استفاده میکند که شامل Round Robin برای توزیع متعادل درخواستها، Least Connections برای ارسال درخواستها به سروری با کمترین اتصالات فعال، و IP Hash برای اطمینان از ارتباط مداوم کاربر با همان سرور میشود.
پیکربندیهای پیشرفته
برای بهینهسازی عملکرد و امنیت n8n با Nginx، میتوانید از پیکربندیهای پیشرفته استفاده کنید.
این تنظیمات شامل مدیریت ترافیک، کشگذاری و بهینهسازی اتصالات است که به بهبود عملکرد کلی سیستم کمک میکند.
در پیکربندیهای پیشرفته Nginx Reverse Proxy برای n8n، میتوانید از دستورات proxy_ مختلف استفاده کنید.
این شامل proxy_cache برای کشگذاری پاسخها، proxy_buffering برای کنترل بافرینگ و proxy_ssl برای اتصالات امن است.
همچنین میتوانید با تنظیم proxy_timeout، زمانهای اتصال، خواندن و ارسال داده را مدیریت کنید.
- استفاده از proxy_cache_path برای تعریف پارامترهای کش
- تنظیم proxy_buffer_size برای اندازه بافر پاسخها
- پیکربندی proxy_connect_timeout برای مدیریت اتصالات
- استفاده از proxy_read_timeout برای زمان خواندن داده
- تنظیم proxy_send_timeout برای زمان ارسال داده
- بهینهسازی proxy_buffering برای کاهش تاخیر

پیشنیازهای نصب و پیکربندی n8n با Nginx چیست؟
برای راهاندازی موفقیتآمیز n8n با Nginx به عنوان Reverse Proxy، نیاز به مجموعهای از پیشنیازهای فنی و زیرساختی دارید.
این پیشنیازها شامل سرور مناسب، نرمافزارهای ضروری و دانش فنی پایه میشوند که در ادامه به تفصیل بررسی میشوند.
اولین و مهمترین پیشنیاز، داشتن یک سرور مجازی (VPS) با حداقل مشخصات فنی است.
برای n8n توصیه میشود از سرورهایی با حداقل 1GB RAM استفاده کنید، اما برای عملکرد بهتر، سرورهای 2GB RAM پیشنهاد میشوند.
سیستم عامل Ubuntu 20.04 LTS یا نسخههای جدیدتر برای این منظور مناسب هستند.
- دسترسی root یا sudo به سرور برای نصب نرمافزارها
- دامین اختصاصی برای دسترسی به n8n از طریق آدرس مشخص
- نصب Docker و Docker Compose برای مدیریت کانتینرها
- پیکربندی فایروال برای باز کردن پورتهای 80 و 443
- دانش پایه از SSH و رابط خط فرمان
- دسترسی به پنل مدیریت DNS دامین
برای امنیت بیشتر، نیاز به SSL Certificate دارید که معمولاً از طریق Certbot و Let’s Encrypt به صورت رایگان قابل دریافت است.
همچنین برای قابلیتهایی مانند ارسال ایمیل، نیاز به پیکربندی SMTP خواهید داشت که میتواند از طریق سرویسهایی مانند Resend انجام شود.
تنظیمات شبکه و فایروال
برای راهاندازی n8n با Nginx به عنوان Reverse Proxy، تنظیمات شبکه و فایروال از اهمیت ویژهای برخوردار است.
ابتدا باید اطمینان حاصل کنید که سرور شما برای دریافت ترافیک HTTP و HTTPS پیکربندی شده باشد.
این شامل باز کردن پورتهای 80 برای HTTP و 443 برای HTTPS در فایروال میشود.
در تنظیمات فایروال، باید پورتهای مربوط به n8n (معمولاً پورت 5678) و همچنین پورتهای Nginx را باز کنید.
برای امنیت بیشتر، توصیه میشود دسترسی SSH را محدود کرده و تنها از کلیدهای SSH برای احراز هویت استفاده کنید.
همچنین باید اطمینان حاصل کنید که DNS سرور شما به درستی پیکربندی شده و دامنه مورد نظر به IP سرور شما اشاره میکند.
دامنه و SSL Certificate
برای راهاندازی n8n با Nginx به عنوان Reverse Proxy، داشتن دامنه اختصاصی و گواهی SSL از الزامات اساسی است.
دامنه شما باید به درستی به سرور شما اشاره کند و گواهی SSL برای رمزگذاری ارتباطات و افزایش امنیت ضروری میباشد.
برای پیکربندی n8n پشت Nginx باید دامنهای مانند n8n.yourdomain.com داشته باشید که به IP عمومی سرور شما اشاره کند.
همچنین با استفاده از ابزارهایی مانند Certbot میتوانید گواهی SSL رایگان از Let’s Encrypt دریافت کنید تا ارتباطات به صورت HTTPS رمزگذاری شوند.

چگونه Nginx را روی سرور نصب کنیم؟
نصب Nginx روی سرور Ubuntu یک فرآیند ساده و مستقیم است که با چند دستور پایه قابل انجام میباشد.
ابتدا باید به سرور خود از طریق SSH متصل شوید و سپس با بهروزرسانی سیستم شروع کنید.
دستور sudo apt update لیست پکیجها را بهروز میکند و sudo apt upgrade -y بهروزرسانیهای موجود را نصب مینماید.
برای نصب Nginx از دستور sudo apt install nginx -y استفاده کنید.
پس از نصب، سرویس Nginx بهطور خودکار راهاندازی میشود.
برای اطمینان از اجرای صحیح آن، دستور sudo systemctl status nginx را اجرا کنید که باید وضعیت “active (running)” را نمایش دهد.
اگر از فایروال UFW استفاده میکنید، باید پورتهای مربوطه را باز کنید: sudo ufw allow 'Nginx Full' که پورتهای 80 و 443 را برای HTTP و HTTPS فعال مینماید.
- اتصال به سرور از طریق SSH
- بهروزرسانی سیستم با apt update و apt upgrade
- نصب Nginx با دستور apt install nginx
- بررسی وضعیت سرویس با systemctl status nginx
- باز کردن پورتهای فایروال برای HTTP و HTTPS
- تست دسترسی به Nginx از طریق مرورگر
بهروزرسانی پکیجهای سرور
قبل از نصب Nginx روی سرور، اولین و مهمترین مرحله بهروزرسانی پکیجهای سیستم است.
این کار تضمین میکند که شما از آخرین نسخههای نرمافزار و امنیتی بهرهمند شوید.
در سیستمهای مبتنی بر Ubuntu، این فرآیند با دستورات سادهای قابل انجام است.
برای بهروزرسانی پکیجها ابتدا لیست پکیجها را با دستور sudo apt update بهروز کنید.
سپس با اجرای sudo apt upgrade -y تمام پکیجهای موجود را ارتقا دهید.
این فرآیند برای نصب Nginx Reverse Proxy ضروری است و از بروز مشکلات سازگاری جلوگیری میکند.
فعالسازی و تأیید نصب
پس از نصب موفقیتآمیز Nginx روی سرور Ubuntu، باید سرویس را فعال کرده و از صحت نصب اطمینان حاصل کنید.
ابتدا وضعیت سرویس Nginx را بررسی کنید تا مطمئن شوید به درستی اجرا شده است.
این مرحله برای اطمینان از آمادهبودن Nginx Reverse Proxy برای پیکربندیهای بعدی ضروری است.
برای فعالسازی و تأیید نصب Nginx، از دستور systemctl status nginx استفاده کنید.
خروجی باید نشان دهد که سرویس در حالت ‘active (running)’ قرار دارد.
همچنین برای اطمینان از دسترسی خارجی، پورتهای 80 و 443 را در فایروال باز کنید.
این مراحل پایهای برای راهاندازی n8n با Nginx و سایر برنامههای تحت وب محسوب میشوند.

ساختار فایلهای پیکربندی Nginx چگونه است؟
ساختار فایلهای پیکربندی Nginx بهصورت سلسلهمراتبی و سازمانیافته طراحی شده است تا مدیریت و نگهداری سرور را آسانتر کند.
این ساختار شامل دایرکتوریها و فایلهای اصلی است که هر کدام وظیفه خاصی در پیکربندی سرور دارند.
فایل اصلی پیکربندی Nginx با نام nginx.conf در مسیر /etc/nginx/ قرار دارد. این فایل شامل تنظیمات سراسری و دستورالعملهایی برای بارگیری تنظیمات اضافی از فایلها و دایرکتوریهای دیگر است.
دایرکتوری /etc/nginx/sites-available/ برای ذخیره پیکربندیهای بالقوه هاستهای مجازی استفاده میشود که هر فایل در این دایرکتوری نمایانگر یک سایت مجزا است.
دایرکتوری /etc/nginx/sites-enabled/ شامل لینکهای نمادین به پیکربندیهای فعال در sites-available است و تنها این پیکربندیها توسط Nginx استفاده میشوند.
- nginx.conf – فایل پیکربندی اصلی Nginx
- sites-available/ – ذخیره پیکربندیهای بالقوه هاستهای مجازی
- sites-enabled/ – شامل لینکهای نمادین به پیکربندیهای فعال
- conf.d/ – شامل پیکربندیهای سراسری برای همه سایتها
- modules-available/ – ماژولهای قابل استفاده
- modules-enabled/ – ماژولهای فعال شده
این ساختار سازمانیافته به شما امکان میدهد بهراحتی سایتهای مختلف را مدیریت کنید، پیکربندیها را فعال یا غیرفعال نمایید، و تنظیمات سراسری را اعمال کنید.
برای پیکربندی Nginx Reverse Proxy، معمولاً یک فایل جدید در دایرکتوری sites-available ایجاد میکنید و سپس آن را در sites-enabled فعال مینمایید.
فایل اصلی nginx.conf
فایل nginx.conf فایل پیکربندی اصلی سرور Nginx است که در مسیر /etc/nginx/nginx.conf قرار دارد.
این فایل شامل تنظیمات سراسری Nginx میباشد و دستورالعملهایی برای بارگذاری تنظیمات اضافی از فایلها و دایرکتوریهای دیگر دارد.
ساختار دایرکتوریهای پیکربندی Nginx به گونهای طراحی شده که امکان مدیریت آسان تنظیمات مختلف را فراهم میکند.
در کنار فایل اصلی nginx.conf، دایرکتوریهای مهم دیگری نیز وجود دارند: /etc/nginx/sites-available/ که تنظیمات میزبانهای مجازی را نگهداری میکند، /etc/nginx/sites-enabled/ که شامل پیوندهای نمادین به تنظیمات فعال است، و /etc/nginx/conf.d/ که تنظیمات سراسری قابل اعمال بر همه سایتها را در خود جای داده است.
دایرکتوری conf.d
دایرکتوری conf.d یکی از بخشهای مهم در ساختار پیکربندی Nginx است که معمولاً در مسیر /etc/nginx/conf.d/ قرار دارد.
این دایرکتوری برای ذخیرهسازی تنظیمات سراسری استفاده میشود که بر روی تمام سایتها و سرورهای تحت مدیریت Nginx اعمال میشوند.
فایلهای با پسوند .conf در این دایرکتوری به صورت خودکار در پیکربندی اصلی Nginx گنجانده میشوند.
این دایرکتوری به شما امکان میدهد تنظیمات مشترک مانند پیکربندی Nginx برای پروکسی معکوس، تنظیمات کش، یا پارامترهای امنیتی را در یک مکان مرکزی مدیریت کنید.
این رویکرد سازماندهی به سادهسازی نگهداری و بهروزرسانی تنظیمات کمک میکند و برای پیادهسازی Nginx Reverse Proxy در محیطهای پیچیده بسیار مفید است.

چگونه Nginx را به عنوان Reverse Proxy برای n8n پیکربندی کنیم؟
پیکربندی Nginx Reverse Proxy برای n8n یک راهحل امن و کارآمد برای مدیریت ترافیک ورودی به پلتفرم اتوماسیون شماست.
این تنظیمات به شما امکان میدهد درخواستهای HTTP و HTTPS را به سرور n8n که معمولاً روی پورت 5678 اجرا میشود، هدایت کنید.
برای شروع، ابتدا باید Nginx را روی سرور خود نصب کنید.
در سیستمهای مبتنی بر Ubuntu میتوانید از دستورات apt استفاده کنید.
پس از نصب، یک فایل پیکربندی جدید در دایرکتوری sites-available ایجاد کنید که شامل تنظیمات سرور و مسیرهای location باشد.
در فایل پیکربندی Nginx، باید بلوک server را تعریف کنید که روی پورت 80 گوش میدهد و از دستور proxy_pass برای هدایت ترافیک به آدرس IP سرور n8n استفاده میکند.
همچنین تنظیمات header مناسب برای حفظ اطلاعات درخواست اصلی ضروری است.
- نصب Nginx و ابزارهای مرتبط
- ایجاد فایل پیکربندی در /etc/nginx/sites-available
- تعریف بلوک server با proxy_pass به localhost:5678
- تنظیم headerهای ضروری مانند Host و X-Forwarded-For
- فعالسازی پیکربندی و تست syntax
- راهاندازی مجدد سرویس Nginx
پس از تکمیل پیکربندی، میتوانید از Certbot برای دریافت گواهی SSL رایگان استفاده کنید و اتصالات را به HTTPS ارتقا دهید.
این تنظیمات امنیت n8n را افزایش داده و عملکرد آن را بهینه میکند.
ایجاد فایل پیکربندی جدید
برای پیکربندی Nginx Reverse Proxy برای n8n، ابتدا باید یک فایل پیکربندی جدید در دایرکتوری sites-available ایجاد کنید.
این فایل شامل تنظیمات سرور و دستورات proxy برای هدایت ترافیک به سرور n8n خواهد بود.
با استفاده از ویرایشگر متن مانند nano، فایل جدیدی با نام دامنه خود ایجاد کنید تا تنظیمات مربوط به n8n با Nginx را در آن قرار دهید.
در فایل پیکربندی، باید بلوک سرور را تعریف کنید که روی پورت 80 گوش میدهد و از دستور proxy_pass برای هدایت درخواستها به آدرس IP سرور n8n استفاده میکند.
همچنین تنظیمات هدر مانند Host، X-Real-IP و X-Forwarded-For برای اطمینان از انتقال صحیح اطلاعات ضروری هستند.
این تنظیمات امنیت و عملکرد n8n پشت Nginx را بهبود میبخشد.
تنظیمات server block
برای پیکربندی Nginx Reverse Proxy برای n8n، ابتدا باید یک فایل پیکربندی در مسیر /etc/nginx/sites-available/ ایجاد کنید.
این فایل شامل تنظیمات server block میشود که درگاه 80 را برای دامنه شما گوش میدهد و درخواستها را به پورت داخلی n8n (5678) ارسال میکند.
در تنظیمات server block باید از دستور proxy_pass برای ارسال درخواستها به آدرس http://localhost:5678 استفاده کنید.
همچنین با دستورات proxy_set_header میتوانید هدرهای مناسب برای پشتیبانی از WebSocket و اطلاعات IP واقعی کاربر را تنظیم کنید.
پس از ایجاد فایل پیکربندی، باید آن را در دایرکتوری sites-enabled فعال کرده و تنظیمات Nginx را تست و reload کنید.
استفاده از proxy_pass و proxy_set_header
برای پیکربندی Nginx به عنوان Reverse Proxy برای n8n، از دستورات proxy_pass و proxy_set_header استفاده میشود.
این دستورات به Nginx اجازه میدهند درخواستهای دریافتی را به سرور n8n منتقل کرده و هدرهای مناسب را تنظیم کند.
دستور proxy_pass آدرس سرور n8n را مشخص میکند که معمولاً روی پورت 5678 اجرا میشود.
دستورات proxy_set_header نیز هدرهای مهمی مانند Host، X-Real-IP و X-Forwarded-For را تنظیم میکنند تا n8n اطلاعات صحیحی از درخواست اصلی دریافت کند.
- proxy_pass http://localhost:5678 – درخواستها را به n8n منتقل میکند
- proxy_set_header Host $host – هدر Host را تنظیم میکند
- proxy_set_header X-Real-IP $remote_addr – آدرس IP واقعی کاربر را ثبت میکند
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for – زنجیره پروکسی را ردیابی میکند
- proxy_set_header X-Forwarded-Proto $scheme – پروتکل اصلی را مشخص میکند.

چگونه Load Balancing را با Nginx برای n8n پیادهسازی کنیم؟
پیادهسازی Load Balancing با Nginx برای n8n به شما امکان میدهد ترافیک را بین چندین نمونه از n8n توزیع کنید و عملکرد و قابلیت اطمینان سیستم را افزایش دهید.
این روش به ویژه برای محیطهای تولیدی که نیاز به مقیاسپذیری و تحمل خطا دارند، ضروری است.
برای پیکربندی Load Balancing در Nginx، ابتدا باید یک بلوک upstream تعریف کنید که شامل آدرسهای تمام نمونههای n8n شما باشد.
سپس با استفاده از دستور proxy_pass، ترافیک را به این upstream هدایت کنید.
Nginx از روشهای مختلفی برای توزیع بار استفاده میکند که شامل Round Robin، Least Connections و IP Hash میشود.
- Round Robin: درخواستها را به صورت مساوی بین تمام سرورها توزیع میکند
- Least Connections: درخواستها را به سروری با کمترین اتصالات فعال ارسال میکند
- IP Hash: بر اساس آدرس IP کاربر، درخواستها را به سرور ثابتی هدایت میکند
این پیکربندی نه تنها عملکرد n8n را بهبود میبخشد، بلکه در صورت خرابی یکی از نمونهها، سایر نمونهها به کار خود ادامه میدهند و از قطعی سرویس جلوگیری میکنند.
همچنین میتوانید از قابلیتهای پیشرفتهتر مانند health checks و failover نیز استفاده کنید.
تعریف upstream block
در پیکربندی Nginx برای Load Balancing، بلوک upstream یک بخش حیاتی است که سرورهای بکاند را تعریف میکند.
این بلوک به Nginx اجازه میدهد تا ترافیک را بین چندین سرور توزیع کند و در نتیجه عملکرد و قابلیت اطمینان سیستم را افزایش دهد.
برای تعریف upstream block در Nginx، باید از دستور upstream استفاده کنید که شامل لیستی از سرورهای بکاند است.
این بلوک معمولاً در فایل پیکربندی Nginx و قبل از بلوک server تعریف میشود.
- تعریف چندین سرور بکاند در بلوک upstream
- استفاده از روشهای مختلف توزیع ترافیک مانند round robin
- پیکربندی تنظیمات مربوط به health check سرورها
- تعریف وزن برای سرورها در صورت نیاز به توزیع نامتقارن
- تنظیم timeout برای اتصال به سرورهای بکاند
روشهای مختلف Load Balancing
برای پیادهسازی Load Balancing با Nginx برای n8n، میتوانید از روشهای مختلفی استفاده کنید که هر کدام مزایای خاص خود را دارند.
این روشها به شما کمک میکنند تا ترافیک را به صورت بهینه بین چندین نمونه از n8n توزیع کنید و عملکرد سیستم را بهبود بخشید.
در پیکربندی Nginx، میتوانید از بلوک upstream برای تعریف سرورهای پشتیبان استفاده کنید و سپس با directive proxy_pass ترافیک را بین آنها توزیع نمایید.
این روشها شامل توزیع یکنواخت، توزیع بر اساس تعداد اتصالات و توزیع بر اساس IP میشوند که هر کدام برای سناریوهای مختلف مناسب هستند.
پیکربندی proxy_next_upstream
پیکربندی proxy_next_upstream در Nginx یک ویژگی حیاتی برای مدیریت خطاها در سیستم Load Balancing است.
این تنظیم مشخص میکند که در صورت بروز خطا یا تایماوت در یکی از سرورهای بکاند، درخواست به سرور بعدی در لیست ارسال شود.
در پیکربندی n8n با Nginx، میتوانید از این دستور برای افزایش قابلیت اطمینان استفاده کنید.
برای مثال، با تنظیم proxy_next_upstream error timeout، در صورت بروز خطا یا تایماوت در یکی از نمونههای n8n، درخواست به نمونه سالم بعدی منتقل میشود.
- افزایش تحمل خطا در سیستم توزیع بار
- بهبود دسترسیپذیری سرویس n8n
- کاهش زمان توقف سرویس
- مدیریت خودکار خطاهای سرور

چگونه محتوای استاتیک را با Nginx مدیریت کنیم؟
مدیریت محتوای استاتیک با Nginx یکی از قابلیتهای کلیدی این وبسرور قدرتمند است که میتواند عملکرد n8n را بهطور چشمگیری بهبود بخشد.
Nginx بهعنوان یک Reverse Proxy میتواند محتوای استاتیک مانند تصاویر، فایلهای CSS و JavaScript را مستقیماً از کش خود سرو کند، بدون اینکه نیاز باشد این درخواستها به سرور اصلی n8n ارسال شوند.
برای پیکربندی Nginx برای مدیریت محتوای استاتیک، میتوانید از بلوکهای location جداگانه استفاده کنید.
این روش به شما امکان میدهد درخواستهای مربوط به محتوای استاتیک را مستقیماً از مسیر مشخص شده سرو کنید، در حالی که درخواستهای داینامیک همچنان به سرور n8n ارسال میشوند.
مزایای اصلی مدیریت محتوای استاتیک با Nginx شامل کاهش بار سرور n8n، بهبود زمان بارگذاری صفحات و افزایش ظرفیت همزمان کاربران است.
همچنین میتوانید از directiveهای expires برای کنترل کش مرورگر استفاده کنید که باعث کاهش درخواستهای تکراری میشود.
ایجاد location block جداگانه
برای بهینهسازی عملکرد n8n با Nginx، ایجاد location block جداگانه برای مدیریت محتوای استاتیک ضروری است.
این رویکرد به شما امکان میدهد محتوای استاتیک مانند تصاویر، فایلهای CSS و JavaScript را مستقیماً از طریق Nginx سرو کنید، بدون اینکه نیاز باشد این درخواستها به سرور اصلی n8n منتقل شوند.
در پیکربندی Nginx Reverse Proxy برای n8n، میتوانید با تعریف location block مخصوص برای مسیرهای استاتیک، عملکرد سیستم را بهطور چشمگیری بهبود بخشید.
این کار نه تنها بار سرور n8n را کاهش میدهد، بلکه زمان پاسخگویی را نیز بهینه میکند.
- تعریف location block جداگانه برای مسیر /static/
- تنظیم root برای مسیر فایلهای استاتیک
- تنظیم expires برای کنترل کش مرورگر
- بهبود عملکرد با سرو مستقیم محتوای استاتیک
- کاهش بار روی سرور n8n
- افزایش سرعت پاسخگویی به کاربران
تنظیمات root و expires
تنظیمات root و expires در Nginx نقش حیاتی در مدیریت کارآمد محتوای استاتیک ایفا میکنند.
با استفاده از این تنظیمات میتوانید عملکرد سرور را بهطور چشمگیری بهبود بخشید و تجربه کاربری بهتری ارائه دهید.
برای بهینهسازی تحویل محتوای استاتیک، میتوانید از بلوک location جداگانه استفاده کنید.
این روش به Nginx اجازه میدهد فایلهای استاتیک را مستقیماً از مسیر مشخص شده توسط دستور root سرو کند، بدون نیاز به ارسال درخواست به سرور بکاند.
تنظیم expires نیز مدت زمان کششدن محتوا در مرورگر کاربر را کنترل میکند که باعث کاهش درخواستهای تکراری و بهبود سرعت بارگذاری میشود.
بهینهسازی کش محتوای استاتیک
برای افزایش عملکرد n8n با Nginx، بهینهسازی کش محتوای استاتیک نقش حیاتی دارد.
این روش با ذخیرهسازی فایلهای ثابت مانند تصاویر، CSS و JavaScript در حافظه موقت Nginx، زمان بارگذاری را کاهش داده و فشار روی سرور اصلی را کم میکند.
با استفاده از directiveهای proxy_cache و proxy_cache_path میتوانید کشهای کارآمدی برای محتوای استاتیک ایجاد کنید.
برای پیادهسازی کش محتوای استاتیک در Nginx Reverse Proxy، از location blockهای جداگانه استفاده کنید.
این کار به Nginx اجازه میدهد فایلهای استاتیک را مستقیماً از کش سرو کند و درخواستها را به سرور اصلی ارسال نکند.
تنظیمات expires و cache-control headers نیز به بهبود عملکرد کمک میکنند.
- استفاده از proxy_cache_path برای تعریف مسیر و پارامترهای کش
- تنظیم proxy_cache در location blockهای مربوط به محتوای استاتیک
- تعیین زمان انقضای کش با directive expires
- بهینهسازی اندازه بافر با proxy_buffer_size
- مدیریت زمانهای timeout برای اتصال و خواندن دادهها
- فعالسازی gzip compression برای کاهش حجم دادهها

تنظیمات پیشرفته proxy_ directives برای n8n چیست؟
تنظیمات پیشرفته proxy directives در Nginx برای n8n شامل مجموعهای از دستورات تخصصی است که عملکرد، امنیت و مدیریت ترافیک را در پیکربندی Nginx Reverse Proxy بهبود میبخشد.
این تنظیمات به شما امکان میدهند نحوه تعامل Nginx با سرور n8n را به طور دقیق کنترل کنید.
- proxy_set_header برای ارسال هدرهای مناسب به سرور n8n
- proxy_cache برای کش کردن پاسخها و کاهش بار سرور
- proxy_buffering برای کنترل بافرینگ پاسخها
- proxy_ssl برای اتصالات امن SSL
- proxy_buffer_size برای تعیین سایز بافر اولیه
- proxy_timeout برای تنظیم زمانهای انتظار مختلف
این تنظیمات به ویژه در محیطهای تولیدی که نیاز به امنیت n8n و عملکرد بهینه دارند، حیاتی هستند.
با استفاده صحیح از این دستورات، میتوانید اتصالات پایدار، انتقال دادههای ایمن و مدیریت کارآمد منابع را تضمین کنید.
تنظیمات proxy_cache و proxy_cache_path در Nginx برای بهینهسازی عملکرد n8n با Nginx بسیار حیاتی هستند.
این تنظیمات امکان کش کردن پاسخهای دریافتی از سرور n8n را فراهم میکنند که باعث کاهش بار سرور و بهبود زمان پاسخگویی میشود.
برای پیکربندی کش در Nginx، ابتدا باید مسیر کش را با proxy_cache_path تعریف کنید.
این دستور پارامترهایی مانند مسیر ذخیرهسازی، سطوح دایرکتوری، اندازه کش و زمان انقضا را مشخص میکند.
سپس با استفاده از proxy_cache میتوانید کش را برای موقعیتهای خاص فعال کنید.
| پارامتر | توضیح |
|---|---|
| levels | ساختار سلسلهمراتبی دایرکتوریهای کش |
| keys_zone | نام و اندازه منطقه کلیدهای کش |
| max_size | حداکثر اندازه کش |
| inactive | زمان انقضای فایلهای استفادهنشده |
تنظیمات proxy_buffering و proxy_buffer_size از مهمترین تنظیمات پیشرفته در Nginx Reverse Proxy برای بهینهسازی عملکرد هستند.
proxy_buffering کنترل میکند که آیا پاسخهای دریافتی از سرور بکاند باید در بافر ذخیره شوند یا خیر.
فعال کردن این قابلیت میتواند عملکرد را بهبود بخشد اما در برخی موارد خاص ممکن است باعث افزایش تأخیر شود.
تنظیم proxy_buffer_size اندازه بافر برای اولین بخش پاسخ را مشخص میکند.
این تنظیم برای پاسخهای کوچک و هدرها بسیار مهم است و مقدار پیشفرض آن معمولاً 4k است.
برای n8n با Nginx این تنظیمات میتوانند تأثیر قابل توجهی بر عملکرد و پایداری داشته باشند.
- proxy_buffering off برای کاهش تأخیر در موارد خاص
- تنظیم proxy_buffer_size برای پاسخهای کوچک
- بهینهسازی برای n8n عملکرد Nginx
- مدیریت حافظه در پیکربندی n8n
- تنظیمات برای Docker n8n
تنظیمات proxy_timeout و proxy_ssl از مهمترین directiveهای پیشرفته در پیکربندی Nginx Reverse Proxy برای n8n هستند.
این تنظیمات به شما امکان کنترل دقیق بر روی اتصالات و امنیت ارتباطات با سرورهای پشتیبان را میدهند.
تنظیمات proxy_timeout شامل سه پارامتر اصلی است:
proxy_connect_timeout برای زمان انتظار برقراری اتصال، proxy_read_timeout برای زمان خواندن پاسخ از سرور پشتیبان، و proxy_send_timeout برای زمان ارسال درخواست به سرور پشتیبان. تنظیم مناسب این مقادیر برای n8n با Nginx بسیار حیاتی است.
تنظیمات proxy_ssl برای اطمینان از امنیت ارتباطات با سرورهای پشتیبان استفاده میشود.
این تنظیمات تضمین میکنند که تمام ارتباطات بین n8n Reverse Proxy و سرورهای پشتیبان به صورت رمزگذاری شده انجام شوند.

چگونه SSL را با Certbot برای n8n فعال کنیم؟
فعالسازی SSL برای n8n با استفاده از Certbot یک فرآیند ساده و ضروری برای امنسازی ارتباطات است.
ابتدا باید Nginx را به عنوان Reverse Proxy نصب کرده و سپس با استفاده از Certbot گواهی SSL رایگان از Let’s Encrypt دریافت کنید.
این فرآیند تضمین میکند که تمام ترافیک بین کاربران و سرور n8n شما رمزگذاری شده و ایمن باشد.
برای شروع، ابتدا بستههای مورد نیاز را نصب کنید: sudo apt install nginx certbot python3-certbot-nginx.
سپس یک فایل پیکربندی برای Nginx ایجاد کرده و تنظیمات مربوط به n8n با Nginx را اضافه کنید.
در این مرحله باید دامنه خود را مشخص کرده و درخواستها را به پورت داخلی n8n (5678) هدایت کنید.
پس از پیکربندی Nginx، با اجرای دستور sudo certbot --nginx میتوانید گواهی SSL را نصب کنید.
Certbot به طور خودکار فایلهای پیکربندی Nginx را بهروزرسانی کرده و گزینهی هدایت ترافیک HTTP به HTTPS را فعال میکند.
در نهایت، باید فایل .env مربوط به n8n را بهروزرسانی کرده و متغیرهای مربوط به HTTPS را تنظیم کنید.
- نصب Nginx و Certbot روی سرور
- پیکربندی Nginx به عنوان Reverse Proxy برای n8n
- اجرای Certbot برای دریافت گواهی SSL
- بهروزرسانی تنظیمات n8n برای پشتیبانی از HTTPS
- تست اتصال ایمن به n8n
نصب Certbot و python3-certbot-nginx
برای فعالسازی SSL n8n و تأمین امنیت ارتباطات، نیاز به نصب Certbot و python3-certbot-nginx دارید.
این ابزارها امکان دریافت و پیکربندی خودکار گواهی SSL رایگان از Let’s Encrypt را فراهم میکنند.
نصب این پکیجها در سیستمعامل Ubuntu با استفاده از دستور apt انجام میشود.
پس از نصب Nginx، با اجرای دستور apt install certbot python3-certbot-nginx میتوانید این ابزارها را نصب کنید.
Certbot بهطور خودکار گواهی SSL را برای دامنه شما تولید کرده و پیکربندی Nginx را برای پشتیبانی از HTTPS بهروزرسانی میکند.
این فرآیند برای n8n با Nginx ضروری است تا ارتباطات امن و رمزگذاری شده باشند.
تولید SSL Certificate
برای تولید گواهی SSL با Certbot ابتدا باید پکیجهای مورد نیاز را نصب کنید.
این فرآیند شامل نصب nginx و certbot به همراه ماژول مربوطه برای nginx میباشد.
پس از نصب، باید فایل پیکربندی nginx را ایجاد کرده و تنظیمات مربوط به سرور را اضافه کنید.
پس از تنظیم فایل پیکربندی، باید آن را فعال کرده و سینتکس آن را تست کنید.
سپس با اجرای دستور certbot و دنبال کردن مراحل آن، گواهی SSL به صورت خودکار تولید و نصب میشود.
این فرآیند شامل تأیید مالکیت دامنه و تنظیم هدایت خودکار ترافیک HTTP به HTTPS میباشد.
پیکربندی Nginx برای HTTPS
برای پیکربندی Nginx Reverse Proxy با HTTPS، ابتدا باید بستههای مورد نیاز را نصب کنید.
این شامل نصب nginx به عنوان وب سرور و certbot برای دریافت گواهی SSL است.
پس از نصب، باید یک فایل پیکربندی برای Nginx ایجاد کنید که درگاه 80 را برای درخواستهای HTTP گوش دهد و نام سرور را به دامنه n8n شما تنظیم کند.
در فایل پیکربندی Nginx، از دستور proxy_pass برای ارسال درخواستها به پورت داخلی n8n (5678) استفاده میکنید.
همچنین باید هدرهای مناسب را با proxy_set_header تنظیم کنید تا از پشتیبانی WebSocket و هدرهای صحیح برای n8n اطمینان حاصل شود.
پس از ذخیره فایل، باید آن را با ایجاد یک پیوند نمادین در دایرکتوری sites-enabled فعال کرده و پیکربندی Nginx را برای خطاهای نحوی آزمایش کنید.

چگونه پیکربندی Nginx را تست و اعتبارسنجی کنیم؟
پس از پیکربندی Nginx Reverse Proxy برای n8n، تست و اعتبارسنجی صحت تنظیمات از اهمیت بالایی برخوردار است.
این مرحله تضمین میکند که ترافیک به درستی به سرورهای بکاند هدایت شده و عملکرد n8n با Nginx بهینه خواهد بود.
برای تست پیکربندی Nginx، ابتدا باید از صحت سینتکس فایلهای پیکربندی اطمینان حاصل کنید.
دستور sudo nginx -t این امکان را فراهم میکند تا هرگونه خطای سینتکسی در فایلهای پیکربندی شناسایی شود.
در صورت موفقیتآمیز بودن تست، پیام “syntax is ok” و “test is successful” نمایش داده میشود.
پس از اعمال تغییرات در پیکربندی، باید سرویس Nginx را مجدداً راهاندازی کنید.
استفاده از دستور sudo systemctl reload nginx تغییرات را بدون قطع اتصالات موجود اعمال میکند.
در مواردی که تغییرات اساسیتری انجام شده، ممکن است نیاز به راهاندازی مجدد کامل با دستور sudo systemctl restart nginx باشد.
- بررسی وضعیت سرویس Nginx با دستور
sudo systemctl status nginx - تست دسترسی به دامنه اختصاصی n8n از طریق مرورگر
- بررسی صحت هدایت ترافیک به پورت داخلی n8n (5678)
- تأیید عملکرد SSL n8n و اتصال HTTPS
- بررسی لاگهای Nginx برای شناسایی خطاها
- تست عملکرد WebSocket برای ارتباطات بلادرنگ
استفاده از دستور nginx -t
دستور nginx -t یک ابزار حیاتی برای تست و اعتبارسنجی پیکربندی Nginx قبل از اعمال تغییرات است.
این دستور فایلهای پیکربندی را بررسی میکند و هرگونه خطای نحوی یا مشکلی را گزارش میدهد.
استفاده از این دستور از قطع سرویس و اختلال در عملکرد وبسایت جلوگیری میکند.
پس از ایجاد تغییرات در فایلهای پیکربندی Nginx، باید دستور sudo nginx -t را اجرا کنید.
اگر پیکربندی صحیح باشد، پیام “nginx: configuration file /etc/nginx/nginx.conf test is successful” نمایش داده میشود.
در صورت وجود خطا، مکان دقیق خطا و نوع آن مشخص میشود که امکان رفع سریع مشکل را فراهم میکند.
ایجاد symbolic link در sites-enabled
پس از ایجاد فایل پیکربندی Nginx در پوشه sites-available، باید یک symbolic link در پوشه sites-enabled ایجاد کنید تا تنظیمات فعال شوند.
این مرحله برای فعالسازی پیکربندی Nginx Reverse Proxy ضروری است و به شما امکان میدهد تنظیمات مختلف را به راحتی فعال یا غیرفعال کنید.
برای ایجاد symbolic link از دستور ln -s استفاده کنید که فایل پیکربندی را از sites-available به sites-enabled پیوند میدهد.
این کار باعث میشود Nginx تنظیمات شما را هنگام راهاندازی مجدد یا بارگذاری مجدد شناسایی کند و پیکربندی n8n با Nginx به درستی اعمال شود.
reload و restart کردن Nginx
پس از اعمال تغییرات در پیکربندی Nginx، باید سرویس را مجدداً راهاندازی کنید.
دو روش اصلی برای این کار وجود دارد: reload و restart. reload تغییرات را بدون قطع اتصالات موجود اعمال میکند، در حالی که restart سرویس را بهطور کامل متوقف و مجدداً راهاندازی میکند که ممکن است باعث قطعی موقت شود.
برای reload کردن Nginx از دستور sudo systemctl reload nginx استفاده کنید.
این روش برای تغییرات جزئی مانند بهروزرسانی تنظیمات Reverse Proxy مناسب است.
در صورت نیاز به راهاندازی مجدد کامل، از دستور sudo systemctl restart nginx استفاده نمایید که برای تغییرات اساسی یا عیبیابی ضروری است.

چگونه تنظیمات n8n را برای کار با Nginx بهروز کنیم؟
برای بهروزرسانی تنظیمات n8n برای کار با Nginx Reverse Proxy، ابتدا باید فایلهای پیکربندی محیطی n8n را ویرایش کنید.
این تنظیمات شامل متغیرهای محیطی مانند N8N_PROXY_TRUST، N8N_URL و N8N_SECURE_COOKIE است که برای عملکرد صحیح n8n پشت Nginx ضروری هستند.
در فایل .env باید موارد زیر را اضافه یا بهروز کنید: N8N_PROXY_TRUST=true برای اعتماد به پروکسی معکوس، N8N_URL و WEBHOOK_URL را به دامنه HTTPS خود تنظیم کنید، و N8N_SECURE_COOKIE=true را برای فعالسازی کوکیهای امن فعال کنید.
همچنین باید پورت n8n را از 5678 به پورت داخلی مناسب تغییر دهید.
- تنظیم N8N_PROXY_TRUST=true برای اعتماد به Nginx
- بهروزرسانی N8N_URL و WEBHOOK_URL با دامنه HTTPS
- فعالسازی N8N_SECURE_COOKIE=true
- پیکربندی صحیح پورتها و پروتکلها
- تست عملکرد پس از اعمال تغییرات
پس از اعمال این تغییرات، باید کانتینر n8n را مجدداً راهاندازی کنید تا تنظیمات جدید اعمال شوند.
این تنظیمات امنیت n8n را در پشت Nginx تضمین کرده و عملکرد بهینهای را برای کاربران فراهم میکند.
تنظیم N8N_PROXY_TRUST
تنظیم متغیر محیطی N8N_PROXY_TRUST یکی از مراحل حیاتی در پیکربندی n8n برای کار با Nginx Reverse Proxy است.
این تنظیم به n8n اجازه میدهد که به درستی با پروکسی معکوس ارتباط برقرار کند و اطلاعات مربوط به IP اصلی کاربر و پروتکل امن را دریافت نماید.
هنگامی که n8n پشت Nginx Reverse Proxy قرار میگیرد، باید متغیر N8N_PROXY_TRUST را روی true تنظیم کنید.
این کار باعث میشود n8n به هدرهای X-Forwarded-For و X-Forwarded-Proto که توسط Nginx ارسال میشوند اعتماد کند و اطلاعات صحیحی از IP کاربر و پروتکل مورد استفاده دریافت نماید.
- افزایش امنیت با اعتماد به هدرهای پروکسی
- دریافت اطلاعات صحیح IP کاربران
- پشتیبانی از پروتکل HTTPS در پشت پروکسی
- تنظیم صحیح کوکیهای امن
بهروزرسانی N8N_URL و WEBHOOK_URL
پس از پیکربندی Nginx Reverse Proxy برای n8n، باید تنظیمات محیطی n8n را بهروزرسانی کنید تا با پروکسی معکوس به درستی کار کند.
این تنظیمات شامل بهروزرسانی متغیرهای محیطی N8N_URL و WEBHOOK_URL است که برای تولید صحیح لینکها و وبهوکها ضروری میباشد.
برای بهروزرسانی این تنظیمات، باید فایل .env را ویرایش کرده و مقادیر زیر را اضافه یا اصلاح کنید:
- N8N_URL=https://n8n.yourdomain.com
- WEBHOOK_URL=https://n8n.yourdomain.com
- N8N_PROXY_TRUST=true
- N8N_SECURE_COOKIE=true
این تنظیمات تضمین میکند که n8n آدرسهای صحیح را برای وبهوکها و لینکها تولید کرده و کوکیهای امن برای ارتباطات HTTPS فعال میشوند.

چگونه میتوان از Nginx برای چندین سرور n8n استفاده کرد؟
استفاده از Nginx Reverse Proxy برای مدیریت چندین سرور n8n یک راهحل قدرتمند برای افزایش مقیاسپذیری و بهبود عملکرد است.
این پیکربندی به شما امکان میدهد ترافیک ورودی را بین چندین نمونه n8n توزیع کنید و از مزایای Load Balancing n8n بهرهمند شوید.
برای پیادهسازی این راهحل، ابتدا باید یک بلوک upstream در فایل پیکربندی Nginx تعریف کنید که شامل آدرسهای تمام سرورهای n8n شما باشد.
سپس با استفاده از directive proxy_pass، ترافیک را به این گروه از سرورها هدایت کنید.
این روش نه تنها توزیع بار را بهبود میبخشد، بلکه قابلیت اطمینان سیستم را نیز افزایش میدهد.
- تعریف بلوک upstream شامل آدرسهای سرورهای n8n
- استفاده از proxy_pass برای هدایت ترافیک به گروه سرورها
- پیادهسازی روشهای مختلف توزیع بار مانند Round Robin
- پیکربندی timeoutها برای مدیریت اتصالات
- تنظیم هدرهای مناسب برای حفظ اطلاعات درخواست اصلی
- فعالسازی کش برای بهبود عملکرد
این پیکربندی به شما امکان میدهد بدون وقفه سرورهای جدید اضافه کنید یا سرورهای موجود را برای تعمیر و نگهداری خارج کنید.
همچنین میتوانید از قابلیتهای پیشرفتهتر مانند health checks برای نظارت بر وضعیت سرورها استفاده کنید.
پیکربندی چندین upstream
برای پیکربندی Nginx برای مدیریت چندین سرور بکاند n8n، میتوانید از بلوک upstream استفاده کنید.
این قابلیت به شما امکان میدهد ترافیک را بین چندین سرور توزیع کرده و عملکرد سیستم را بهبود بخشید.
با تعریف یک بلوک upstream، میتوانید لیستی از سرورهای بکاند را مشخص کرده و از روشهای مختلف Load Balancing مانند round robin یا least connections استفاده کنید.
در پیکربندی Nginx، بلوک upstream شامل آدرسهای سرورهای n8n میشود.
سپس در بخش location از directive proxy_pass برای ارسال درخواستها به این upstream استفاده میکنید.
این تنظیمات به همراه proxy_set_header برای حفظ اطلاعات هدر اصلی درخواستها، اطمینان حاصل میکند که n8n Reverse Proxy به درستی کار میکند و ترافیک به صورت متعادل بین سرورها توزیع میشود.
مدیریت سرورهای مختلف با تکنولوژیهای متفاوت
یکی از قابلیتهای قدرتمند Nginx Reverse Proxy امکان مدیریت چندین سرور بکاند با تکنولوژیهای مختلف است.
این ویژگی به شما اجازه میدهد تا ترافیک را بین سرورهای مختلف توزیع کرده و از منابع موجود بهینهتر استفاده کنید.
با استفاده از بلوک upstream در پیکربندی Nginx، میتوانید چندین سرور n8n را تعریف کرده و از روشهای مختلف Load Balancing n8n برای توزیع بار استفاده کنید.
برای مدیریت سرورهای مختلف، میتوانید از روشهای مختلف توزیع بار مانند Round Robin، Least Connections و IP Hash استفاده کنید.
این قابلیتها به شما کمک میکنند تا عملکرد کلی سیستم را بهبود بخشیده و در صورت خرابی یکی از سرورها، ترافیک به صورت خودکار به سرورهای سالم هدایت شود.
بهینهسازی تخصیص منابع
برای بهینهسازی تخصیص منابع در پیکربندی Nginx برای چندین سرور بکاند، میتوان از روشهای مختلفی استفاده کرد.
یکی از مهمترین تکنیکها استفاده از بلوک upstream است که به شما امکان میدهد ترافیک را بین چندین سرور n8n توزیع کنید.
این روش نه تنها بار را متعادل میکند، بلکه در صورت خرابی یکی از سرورها، درخواستها به طور خودکار به سرورهای دیگر هدایت میشوند.
برای مدیریت بهتر منابع، میتوانید از روشهای مختلف توزیع بار مانند round robin یا least connections استفاده کنید.
همچنین تنظیم timeoutها و bufferها در پیکربندی Nginx به بهینهسازی عملکرد کمک میکند و از مصرف بیش از حد منابع جلوگیری مینماید.

ملاحظات امنیتی در پیکربندی Nginx برای n8n چیست؟
پیکربندی امن Nginx Reverse Proxy برای n8n از اهمیت بالایی برخوردار است، زیرا این پروکسی به عنوان دروازه اصلی به سرویس شما عمل میکند.
یکی از مهمترین ملاحظات امنیتی، استفاده از SSL/TLS برای رمزنگاری ارتباطات است.
با استفاده از ابزارهایی مانند Certbot میتوانید گواهی SSL رایگان از Let’s Encrypt دریافت کنید و تمام ترافیک را به HTTPS هدایت نمایید.
برای افزایش امنیت n8n با Nginx، باید هدرهای پروکسی را به درستی تنظیم کنید.
این شامل تنظیم هدرهای X-Forwarded-For، X-Real-IP و X-Forwarded-Proto است تا n8n بتواند اطلاعات صحیحی درباره منبع درخواستها دریافت کند.
همچنین باید اطمینان حاصل کنید که پورتهای غیرضروری در فایروال بسته هستند و فقط پورتهای 80 و 443 برای دسترسی عمومی باز میباشند.
- فعالسازی HTTPS اجباری با هدایت تمام ترافیک HTTP به HTTPS
- تنظیم صحیح هدرهای پروکسی برای جلوگیری از حملات جعل هویت
- محدود کردن دسترسی به پورتهای ضروری در فایروال
- استفاده از کوکیهای امن (Secure Cookies) پس از فعالسازی HTTPS
- تنظیم N8N_PROXY_TRUST=true برای اعتماد به پروکسی معکوس
- بررسی منظم لاگها برای شناسایی فعالیتهای مشکوک
استفاده از SSL برای انتقال داده
استفاده از SSL برای انتقال داده در پیکربندی Nginx برای n8n یکی از مهمترین ملاحظات امنیتی است.
SSL با رمزگذاری ارتباط بین کاربران و سرور n8n، از دادههای حساس مانند اطلاعات ورود، تنظیمات و گردشهای کاری محافظت میکند.
این رمزگذاری از شنود و دستکاری دادهها در حین انتقال جلوگیری کرده و امنیت کلی سیستم را افزایش میدهد.
برای پیادهسازی SSL در n8n با Nginx، میتوان از ابزارهایی مانند Certbot برای دریافت گواهیهای رایگان از Let’s Encrypt استفاده کرد.
این گواهیها اعتبار دامنه را تأیید کرده و ارتباطات امن HTTPS را فعال میکنند.
همچنین باید پیکربندی Nginx را بهگونهای تنظیم کرد که تمام ترافیک HTTP به HTTPS هدایت شود تا از انتقال دادهها در حالت ناامن جلوگیری شود.
پیکربندی صحیح WebSockets
برای پیکربندی صحیح WebSockets در n8n با Nginx، باید تنظیمات خاصی را در فایل پیکربندی Nginx اعمال کنید.
این تنظیمات شامل هدرهای پروکسی مناسب برای پشتیبانی از اتصالات WebSocket است که برای عملکرد صحیح n8n ضروری میباشد.
در پیکربندی Nginx Reverse Proxy برای n8n، باید از دستورات proxy_set_header برای ارسال اطلاعات صحیح به سرور بکاند استفاده کنید.
این شامل تنظیم هدرهای Host، X-Real-IP و X-Forwarded-For میشود که امنیت و عملکرد صحیح WebSockets را تضمین میکنند.
کنترل دسترسی و فایروال
کنترل دسترسی و فایروال از جنبههای حیاتی امنیت در پیکربندی Nginx Reverse Proxy برای n8n محسوب میشوند.
این تنظیمات تضمین میکنند که تنها ترافیک مجاز به سرور n8n دسترسی داشته باشد و از حملات احتمالی جلوگیری شود.
برای پیادهسازی کنترل دسترسی موثر، باید پورتهای غیرضروری مسدود شوند و تنها پورتهای 80 و 443 برای دسترسی عمومی باز باشند.
همچنین استفاده از فایروال UFW برای محدود کردن دسترسیهای شبکه و پیکربندی صحیح هدرهای پروکسی برای جلوگیری از حملات تزریق ضروری است.
- تنظیم فایروال برای مسدود کردن پورتهای غیرضروری
- فعالسازی SSL برای رمزگذاری ارتباطات
- پیکربندی هدرهای X-Forwarded-For و X-Real-IP
- محدود کردن دسترسی بر اساس IP
- تنظیم timeout مناسب برای اتصالات
- فعالسازی logging برای نظارت بر ترافیک

چگونه میتوان از قابلیت Caching در Nginx برای n8n استفاده کرد؟
استفاده از قابلیت Caching در Nginx برای n8n میتواند عملکرد سیستم را بهطور چشمگیری بهبود بخشد.
این قابلیت به Nginx اجازه میدهد محتوای استاتیک و حتی برخی پاسخهای داینامیک را در حافظه کش ذخیره کند، که باعث کاهش بار روی سرور n8n و افزایش سرعت پاسخدهی میشود.
برای پیکربندی کش در Nginx با n8n، باید از دستورات proxy_cache و proxy_cache_path استفاده کنید.
این تنظیمات به Nginx میگویند که چگونه محتوا را کش کند و کجا آن را ذخیره نماید.
همچنین میتوانید زمان انقضای کش و اندازه آن را مشخص کنید تا منابع سرور بهینهتر مدیریت شوند.
- تعریف مسیر کش با proxy_cache_path در بلوک http
- فعالسازی کش برای موقعیتهای خاص با proxy_cache
- تنظیم زمان انقضای کش برای محتوای مختلف
- تعیین اندازه حافظه کش و سطوح ذخیرهسازی
- استفاده از proxy_cache_valid برای کنترل اعتبار کش
- پیکربندی proxy_cache_key برای شناسایی منحصربهفرد محتوا
این تنظیمات بهویژه برای محتوای استاتیک و پاسخهای API که بهطور مکرر درخواست میشوند، بسیار مفید است.
با استفاده از Nginx Reverse Proxy همراه با کش، میتوانید عملکرد n8n را در محیطهای پرترافیک بهطور قابلتوجهی بهبود بخشید.
تنظیم proxy_cache_path
برای استفاده از قابلیت caching در Nginx برای n8n، باید مسیر کش را با استفاده از دستور proxy_cache_path در فایل پیکربندی Nginx تعریف کنید.
این تنظیم به Nginx اجازه میدهد پاسخهای دریافتی از سرور n8n را در حافظه کش ذخیره کند و درخواستهای مشابه را بدون نیاز به ارتباط مجدد با سرور اصلی پاسخ دهد.
برای پیکربندی کش، باید پارامترهای زیر را در بلوک http فایل nginx.conf تعریف کنید: مسیر ذخیرهسازی فایلهای کش، سطوح دایرکتوری، اندازه کش و زمان انقضا. این تنظیمات عملکرد n8n با Nginx را بهطور قابل توجهی بهبود میبخشد و بار سرور را کاهش میدهد.
پیکربندی levels و keys_zone
برای فعالسازی قابلیت caching در Nginx برای n8n، باید از دستورات proxy_cache و proxy_cache_path استفاده کنید.
این تنظیمات به شما امکان میدهند محتوای استاتیک و پاسخهای متداول را کش کنید تا عملکرد سیستم بهبود یابد و بار سرور کاهش پیدا کند.
برای پیکربندی کش، باید مسیر کش، سطوح ذخیرهسازی و منطقه کلیدها را تعریف کنید.
این تنظیمات در بلوک http فایل پیکربندی Nginx قرار میگیرند و سپس در بلوکهای location مربوط به n8n فعال میشوند.
- تعریف مسیر کش با proxy_cache_path و تنظیم levels برای ساختار دایرکتوری
- استفاده از keys_zone برای مدیریت حافظه کش
- تنظیم max_size برای محدود کردن حجم کش
- تعیین زمان انقضای کش با inactive
- فعالسازی کش در بلوک location با proxy_cache
- بهینهسازی عملکرد با proxy_buffering و proxy_buffer_size
مدیریت max_size و inactive
مدیریت صحیح پارامترهای max_size و inactive در کشگذاری Nginx برای n8n از اهمیت بالایی برخوردار است.
این پارامترها به شما امکان میدهند حداکثر اندازه کش و مدت زمان نگهداری محتوای کششده را کنترل کنید.
تنظیم مناسب این مقادیر میتواند عملکرد سیستم را بهینهسازی کرده و از مصرف بیش از حد منابع سرور جلوگیری کند.
برای پیکربندی کش در Nginx، میتوانید از دستور proxy_cache_path استفاده کنید که در آن max_size حداکثر اندازه کش و inactive مدت زمانی است که محتوای بدون دسترسی در کش باقی میماند.
این تنظیمات به ویژه برای n8n با Nginx مفید هستند زیرا میتوانند زمان پاسخگویی را کاهش داده و بار سرور را مدیریت کنند.
- تنظیم max_size برای کنترل مصرف فضای دیسک
- تعیین inactive برای حذف خودکار محتوای قدیمی
- بهینهسازی عملکرد n8n عملکرد Nginx
- مدیریت منابع در n8n Reverse Proxy
پیادهسازی n8n با Nginx به عنوان Reverse Proxy راهحلی قدرتمند برای افزایش امنیت و عملکرد سرویسهای اتوماسیون است.
این پیکربندی نه تنها دسترسی امن از طریق HTTPS را فراهم میکند، بلکه امکان مدیریت بهتر ترافیک و توزیع بار را نیز ایجاد مینماید.
استفاده از Nginx Reverse Proxy برای n8n مزایای متعددی دارد از جمله: افزایش امنیت با جداسازی لایهها، امکان مدیریت SSL متمرکز، بهبود عملکرد با کشگذاری محتوا، و قابلیت توزیع بار بین چندین سرور.
این راهکار به ویژه برای محیطهای تولیدی که نیاز به دسترسی ایمن و پایدار دارند، ضروری است.
برای حفظ امنیت و عملکرد بهینه، توصیه میشود تنظیمات زیر را در نظر بگیرید:
- فعالسازی SSL با Certbot برای رمزگذاری ارتباطات
- پیکربندی صحیح هدرهای پروکسی برای حفظ اطلاعات کلاینت
- تنظیم timeoutهای مناسب برای جلوگیری از قطع ارتباط
- پیادهسازی کشگذاری برای بهبود سرعت پاسخدهی
- پایش منظم لاگها و بهروزرسانیهای امنیتی

