🌓
编辑文章
操作密码
请输入正确的操作密码才能编辑文章
文章标题
标签
多个标签请用逗号分隔
文章内容
## 准备工作 - 点击这里打开 <a href="https://www.aliyun.com/" target="_blank">阿里云网站</a> 注册一个阿里云账号 - 登录阿里云控制台,然后点击这里购买一个域名 <a href="https://wanwang.aliyun.com/" target="_blank">购买域名</a> - 点击这里进入域名列表 <a href="https://dc.console.aliyun.com/next/index?#/domain-list/all" target="_blank">域名列表</a> - 点击这里申请一个免费的测试证书 <a href="https://yundun.console.aliyun.com/?p=cas#/certExtend/free/cn-hangzhou" target="_blank">申请免费证书</a> - 下载你的证书,解压备用 ## 创建nginx文件目录 ```bash mkdir -p /root/dockers-data/nginx/{conf.d,certs} ``` ## 创建nginx配置文件 ```bash vim /root/dockers-data/nginx/nginx.conf ``` 复制文件nginx.conf内容如下: ``` pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; multi_accept on; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # Gzip 压缩 gzip on; gzip_disable "msie6"; gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css applic ation/json; # 启用 SSL 推荐配置(可选) ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; # 虚拟主机配置目录(不要改) include /etc/nginx/conf.d/*.conf; } ``` 创建docker-compose.yml文件 ```bash vim /root/dockers-data/nginx/docker-compose.yml ``` 复制文件docker-compose.yml内容如下: ``` services: nginx: image: nginx:latest container_name: nginx-server restart: always ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./conf.d:/etc/nginx/conf.d:ro - ./certs:/etc/nginx/certs:ro networks: - docker-network networks: docker-network: external: true ``` ## 启动docker共享网络 ```bash docker network create docker-network ``` ## 上传ssl证书到服务器 在woterm点击右键打开sftp助手,上传你的ssl证书到nginx的certs目录下。 ## 配置n8n虚拟主机 ```bash vim /root/dockers-data/nginx/conf.d/n8n.conf ``` 复制文件n8n.conf内容如下: ``` server { listen 80; server_name 你的域名; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name 你的域名; ssl_certificate /etc/nginx/certs/你的证书pem文件; ssl_certificate_key /etc/nginx/certs/你的证书key文件; location / { proxy_pass http://n8n:5678; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; 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; } } ``` ## 修改n8n docker-compose.yml文件的网络配置 ```bash vim /root/dockers-data/n8ndata/docker-compose.yml ``` 修改完成之后的配置文件是这样的 ``` services: n8n: image: n8nio/n8n container_name: n8n ports: - 5678:5678 volumes: - ./n8n:/home/node/.n8n restart: always environment: - N8N_SECURE_COOKIE=true - WEBHOOK_URL=https://你的域名/ - N8N_HOST=你的域名 networks: - docker-network networks: docker-network: external: true ``` 切换当前目录到n8ndata目录 ```bash cd /root/dockers-data/n8ndata ``` 重新启动n8n容器 ```bash docker compose down docker compose up -d ``` ## 切换到nginx目录 ```bash cd /root/dockers-data/nginx ``` ## 复制下方指令部署nginx容器 ```bash docker compose up -d ``` 一个带有域名和SSL证书的n8n服务器就搭建完成了。 这样以后访问你的域名,就会被nginx服务器拦截到,然后转发到n8n容器上。你看到的就是n8n的工作台页面了。 https非常重要,将来很多平台的对接都需要配置了ssl证书的https协议才能用。 ### 相关视频 [【0基础系列-0】手摸手教你配置服务器|n8n/Docker/AI系统的基石!](https://youtu.be/KPr_r42_bB0) [【零基础系列01】Linux 快速部署 Docker 和 n8n | 新手也能一键搭建自动化神器!](https://youtu.be/i88LcYLaOUs)
保存更改
取消