基于Nginx自定义n8n社区节点下载仓库

 

Here’s the table of contents:

  1. 自定义n8n社区节点下载仓库位置
    1. 修改Nginx配置
    2. 安装Git Bash
    3. 修改Hosts
    4. 修改用户目录下的.npmrc配置
    5. 安装社区节点

自定义n8n社区节点下载仓库位置

 n8n中自定义N8N_COMMUNITY_PACKAGES_REGISTRY是企业版功能,为了在社区版中可以正常使用,这里使用Nginx转发功能实现仓库地址的修改。

修改Nginx配置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    # 增加server_names_hash_bucket_size以支持长服务器名称
    server_names_hash_bucket_size 64;

    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    # NPM Registry Proxy - HTTP
    server {
        listen       80;
        server_name  registry.npmjs.org;

        # 特定重定向规则:将 /{packagename}/latest 重定向到本地仓库
        location ~ ^/([^/]+)/latest$ {
            return 301 http://10.0.0.1:8081/repository/npm-local/$1;
        }

        location / {
            proxy_pass http://10.0.0.1:8081/repository/npm-local/;
            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;

            # 确保正确处理所有请求类型
            proxy_connect_timeout 60s;
            proxy_send_timeout 60s;
            proxy_read_timeout 60s;

            # 处理大文件上传
            client_max_body_size 100M;

            # 保持连接
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }

    # NPM Registry Proxy - HTTPS
    server {
        listen       443 ssl;
        server_name  registry.npmjs.org;

        # SSL证书配置
        ssl_certificate      server.pem;
        ssl_certificate_key  server.key;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        # 特定重定向规则:将 /{packagename}/latest 重定向到本地仓库
        location ~ ^/([^/]+)/latest$ {
            return 301 http://10.0.0.1:8081/repository/npm-local/$1;
        }

        location / {
            proxy_pass http://10.0.0.1:8081/repository/npm-local/;
            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;

            # 处理HTTPS到HTTP的代理
            proxy_ssl_verify off;
            proxy_ssl_server_name on;

            # 确保正确处理所有请求类型
            proxy_connect_timeout 60s;
            proxy_send_timeout 60s;
            proxy_read_timeout 60s;

            # 处理大文件上传
            client_max_body_size 100M;

            # 保持连接
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }

}

安装Git Bash

# 安装Git Bash以后生成 server.key、server.pem

修改Hosts

# 将默认的仓库地址映射到Nginx服务IP
127.0.0.1	registry.npmjs.org

修改用户目录下的.npmrc配置

registry=https://registry.npmmirror.com
strict-ssl=false

安装社区节点

# 配置完成后,社区节点的安装即可从自定义的仓库地址安装