It’s all working perfectly well and users are really happy with it.
We have one main process, one webhook, one redis and some auto scaling workers (from 3 to 10 pods). The main process and the webhook have their own ingress & DNS entries.
Description
When using webhooks, end users are often confused with URLs which are working fine for Production but not for Testing.
I’ve setup WEBHOOK_URL = https://n8n-webhook.mydomain
But it seems that only the “Production URL” is working properly with it.
When using the “Test URL”, it also displays the same url (except webhook-test instead of webhook) but users need to be pointing to the main DNS https://n8n.mydomain
So, is there a way of having two different variables for WEBHOOK_URL? That will avoid confusion for users testing their webhooks. Or maybe do you recommend to have custom web server rules depending on context?
Information on your n8n setup
n8n version: 0.195.5
Database you’re using (default: SQLite): Postgresql
Running n8n with the execution process [own(default), main]: own
Running n8n via [Docker, npm, n8n.cloud, desktop app]: docker/kubernetes
It sounds like you have managed to do a lot of work there with the setup, I think when it comes to scaling the bit most people miss is all of the workflow editing is done on the main instance and that also applies to testing workflows that way you are able to see the execution data in the canvas and play with it.
Our recommended approach is on our scaling docs which I have pasted below for you which isn’t exactly what you are after but hopefully it helps answer the question.
Note: Manual workflow executions still occur on the main process and the default URL for these is /webhook-test/*. Make sure that these URLs route to your main process.
And it’s working, but not all the time…
I’m getting the following error randomly (it sometimes works…) with nothing displayed in the n8n main/webhook logs:
I’ve finally fixed my issue.
By creating 2 ingress with different priority, I was able to check the /webhook first and point to the webhook service before pointing all other requests to the main: