使用Docker和Traefik/LetsEncrypt自托管n8n(实现https)

💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

在Docker中运行n8n和Traefik,通过Traefik作为反向代理实现HTTPS访问。配置Traefik获取SSL证书,确保DNS正确,将子域名指向n8n。设置n8n容器标签支持HTTPS,并加入Traefik网络。配置N8N_EDITOR_BASE_URL和WEBHOOK_URL以确保OAuth2流程正常,特别是用于Google API。

🎯

关键要点

  • 在Docker中运行n8n时,使用HTTPS访问是必要的,尤其是进行OAuth2连接时。
  • 通过Traefik作为反向代理,可以自动获取和续订SSL证书。
  • 需要在Docker中运行n8n和Traefik,并确保域名的DNS配置正确。
  • 配置Traefik以处理子域名请求,并将流量转发到n8n。
  • 在n8n容器中添加标签,以告知Traefik处理HTTPS访问。
  • Traefik需要与n8n在同一Docker网络中,以确保反向代理正常工作。
  • 设置N8N_EDITOR_BASE_URL和WEBHOOK_URL,以确保OAuth2流程正常,特别是用于Google API。
  • Traefik通过LetsEncrypt自动处理SSL证书的获取和更新。
  • 在使用Traefik时,可能需要根据不同的域名注册商调整环境变量和配置。

延伸问答

如何在Docker中设置n8n以支持HTTPS?

在Docker中设置n8n以支持HTTPS需要使用Traefik作为反向代理,并配置Traefik获取SSL证书。

Traefik如何自动获取SSL证书?

Traefik通过LetsEncrypt自动获取和续订SSL证书,使用域名注册商的API进行DNS验证。

在使用n8n时,为什么需要配置N8N_EDITOR_BASE_URL和WEBHOOK_URL?

配置N8N_EDITOR_BASE_URL和WEBHOOK_URL是为了确保OAuth2流程正常,特别是用于Google API的重定向URL。

如何确保Traefik和n8n在同一Docker网络中?

需要在Docker Compose文件中为Traefik和n8n配置相同的网络,以确保反向代理正常工作。

在配置Traefik时,如何处理不同域名注册商的环境变量?

根据不同的域名注册商,需调整Traefik的环境变量,例如使用GoDaddy时需要设置GODADDY_API_KEY和GODADDY_API_SECRET。

使用Traefik时,如何处理DNS配置?

需要确保域名或子域名正确指向Traefik服务器,可以通过公共DNS或本地hosts文件进行配置。

➡️

继续阅读