پرش به مطلب اصلی
فعال‌سازی Webhook URL در n8n

فعال‌سازی Webhook URL در n8n

بازارچه ابریخواندن 4 دقیقه

Webhook URL در n8n یک endpoint منحصربه‌فرد است که برای هر جریان‌داده تولید می‌شود و از طریق آن می‌توان جریان‌داده را از خارج از n8n اجرا کرد. این قابلیت امکان یکپارچه‌سازی n8n با ابزارهای دیگر را فراهم می‌کند؛ برای مثال می‌توان با ابزارهایی مانند GitHub یکپارچه‌سازی کرد و در صورت رخداد یک رویداد خاص، webhook را فراخوانی کرد تا جریان‌داده اجرا شود. n8n دو نوع webhook URL ارائه می‌دهد: یکی برای محیط تست و یکی برای محیط production.

برای استفاده از webhook در n8n، نود Webhook Trigger به جریان‌داده اضافه می‌شود. پس از فعال‌سازی جریان‌داده، آدرس webhook در دسترس قرار می‌گیرد و می‌توان با دستور curl یا ابزارهای دیگر به آن درخواست ارسال کرد.


استفاده از Webhook در محیط Production (متغیرهای محیطی)

برای اینکه بتوان در محیط production از webhook node مربوط به n8n استفاده کرد، لازم است متغیرهای محیطی سرویس n8n تنظیم شوند. این تنظیمات از طریق کنسول هم‌روش و در صفحه‌ی سرویس n8n انجام می‌شود: به تنظیمات سرویس و بخش متغیرهای محیطی (Environment Variables) مراجعه شده و متغیرهای موردنیاز اضافه یا ویرایش می‌شوند.

متغیرهایی که برای استفاده از webhook با دامین اختصاصی لازم هستند به‌صورت زیر تعریف می‌شوند:

WEBHOOK_URL=<your-domain.xyz>
N8N_PROXY_HOPS=1

مقدار WEBHOOK_URL برابر با دامین اختصاصی موردنظر قرار داده می‌شود. متغیر N8N_PROXY_HOPS تعداد لایه‌های پروکسی را مشخص می‌کند و مقدار آن بسته به معماری پروکسی (مثلاً وجود ریورس پروکسی) تنظیم می‌شود. پس از اعمال تغییرات، دکمه‌ی «اعمال تغییرات» زده می‌شود تا تنظیمات ذخیره شوند.


رفع محدودیت‌های تحریمی (ارتباط با سرویس‌های تحریمی)

برای برقراری ارتباط سرویس‌های تحریمی به n8n (مثلاً زمانی که سرویس خارجی می‌خواهد به webhook شما در n8n درخواست بفرستد)، باید HTTP reverse proxy تنظیم شود تا درخواست‌ها از طریق دامنه‌ای که در دسترس آن سرویس است به n8n هدایت شوند. در بخش بعدی نمونه‌ی پیکربندی Nginx به‌عنوان ریورس پروکسی آورده شده است.

برای برقراری ارتباط از n8n به سرویس‌های تحریمی (خروجی از n8n به سرویس‌های تحریم‌شده)، متغیرهای محیطی HTTP_PROXY و HTTPS_PROXY در همان بخش متغیرهای محیطی سرویس n8n در کنسول هم‌روش تنظیم می‌شوند. با تنظیم این متغیرها، ترافیک خروجی n8n از طریق پروکسی موردنظر عبور کرده و امکان ارتباط با سرویس‌های تحریمی فراهم می‌شود.


استفاده از ریورس پروکسی (Reverse Proxy)

برای استفاده از ریورس پروکسی و در اختیار گرفتن دامین اختصاصی برای webhook (و همچنین امکان دریافت درخواست از سرویس‌های تحریمی به سمت n8n)، می‌توان از Nginx استفاده کرد. در این حالت Nginx نصب شده، دامین اختصاصی به آن متصل می‌شود و در کانفیگ Nginx، دامین پیش‌فرض n8n به‌عنوان مقصد proxy قرار داده می‌شود تا درخواست‌ها به n8n route شوند. متغیرهای محیطی گفته‌شده در بخش «استفاده از Webhook در محیط Production» (از جمله WEBHOOK_URL و N8N_PROXY_HOPS) نیز روی سرویس n8n اعمال می‌شوند.

نمونه‌ی پیکربندی Nginx به‌صورت زیر است:

server {
server_name <your-reverse-proxy-domain.xyz>;

resolver 1.1.1.1 9.9.9.9 valid=300s ipv6=off;

location / {
proxy_pass https://<your-n8n-default-domain.xyz>;
proxy_set_header Host <your-n8n-default-domain.xyz>;
proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

proxy_ssl_server_name on;
proxy_ssl_name <your-n8n-default-domain.xyz>;
proxy_ssl_verify off;

proxy_connect_timeout 60s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;
proxy_buffering off;
proxy_cache off;
proxy_request_buffering off;

client_max_body_size 100M;
}
}

با این تنظیمات، امکان استفاده از دامین اختصاصی برای webhook فراهم می‌شود و درخواست‌های ورودی از سرویس‌های تحریمی به n8n از طریق همین دامین به n8n می‌رسند. از دیگر مزایای ریورس پروکسی می‌توان به افزایش امنیت و امکان مشاهده‌پذیری ترافیک ورودی به n8n اشاره کرد.

این راهنمایی کاربردی بود؟

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