凤凰AI七社 Logo 凤凰AI七社

Linux 下使用docker 部署nginx服务器,并给n8n配置域名和ssl证书

发布于 2025-05-28 03:30

准备工作

创建nginx文件目录

mkdir -p /root/dockers-data/nginx/{conf.d,certs}

创建nginx配置文件

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文件

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共享网络

docker network create  docker-network

上传ssl证书到服务器

在woterm点击右键打开sftp助手,上传你的ssl证书到nginx的certs目录下。

配置n8n虚拟主机

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文件的网络配置

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目录

cd /root/dockers-data/n8ndata

重新启动n8n容器

docker compose down
docker compose up -d

切换到nginx目录

cd /root/dockers-data/nginx

复制下方指令部署nginx容器

docker compose up -d

一个带有域名和SSL证书的n8n服务器就搭建完成了。 这样以后访问你的域名,就会被nginx服务器拦截到,然后转发到n8n容器上。你看到的就是n8n的工作台页面了。 https非常重要,将来很多平台的对接都需要配置了ssl证书的https协议才能用。

相关视频

【0基础系列-0】手摸手教你配置服务器|n8n/Docker/AI系统的基石!

【零基础系列01】Linux 快速部署 Docker 和 n8n | 新手也能一键搭建自动化神器!

返回首页 上传文章 编辑文章