nexus 代理 npm

环境说明

服务 ip 端口 备注
nexus 192.168.80.129 (内网) 8081 内网地址无法访问外网
nginx

192.168.80.128 (内网)

192.168.174.126 (外网)

代理端口 88 192.168.174.126 地址可以访问外网

创建 Blob Stores

创建 Repositories

设置 proxy

repo 测试

安装 cnpm

# npm install -g cnpm --registry=http://192.168.80.129:8081/repository/npm-aliyun-repo/

added 1 package in 20s

59 packages are looking for funding
  run `npm fund` for details

 

查看 cnpm 版本信息

# cnpm version
cnpm@9.4.0 (/usr/local/node-v20.11.1-linux-x64/lib/node_modules/cnpm/lib/parse_argv.js)
npm@9.9.2 (/usr/local/node-v20.11.1-linux-x64/lib/node_modules/cnpm/node_modules/npm/index.js)
node@20.11.1 (/usr/local/node-v20.11.1-linux-x64/bin/node)
npminstall@7.12.0 (/usr/local/node-v20.11.1-linux-x64/lib/node_modules/cnpm/node_modules/npminstall/lib/index.js)
prefix=/usr/local/node-v20.11.1-linux-x64 
linux x64 6.5.0-14-generic 
registry=https://registry.npmmirror.com

查看

方法二

架构图

nexus(192.168.80.128:8081) --> nginx(192.168.80.129:19000,192.168.80.129:80) --> http://mirrors.huaweicloud.com/

nginx 配置

server {
    listen       19000;
    server_name  localhost;

    # 设置代理访问日志
    access_log /var/log/nginx/npm.access.log ;
    error_log  /var/log/nginx/npm.error.log ;

    location /npm-huawei/ {
	    proxy_pass http://mirrors.huaweicloud.com/;
        proxy_set_header X-Forwarded-Host 'npm-huaweicloud-repo';
    }
}
server {
    listen       80;
    server_name  npm-huaweicloud-repo;

    location / {
	    proxy_pass http://mirrors.huaweicloud.com;
    }
}

nexus 配置

services:
  nexus3:
    image: sonatype/nexus3:3.68.1
    container_name: nexus3
    restart: always
    extra_hosts:
      - "npm-huaweicloud-repo:192.168.80.129"
    environment:
      - TZ=Asia/Shanghai
    networks:
      nexus-bridge:
    ports:
      - 8081:8081
    volumes:
      - ./nexus-data:/nexus-data
      - /etc/localtime:/etc/localtime


networks:
  nexus-bridge:
    driver: bridge

repository

npm 配置

# npm config set registry http://192.168.80.128:8081/repository/npm-huawei/
# npm cache clean -f

安装包测试

# npm --loglevel info install cnpm
npm info using npm@10.8.0
npm info using node@v20.13.1
npm http fetch GET 200 http://192.168.80.128:8081/repository/npm-huawei/cnpm 171ms (cache miss)
npm http fetch GET 200 http://192.168.80.128:8081/repository/npm-huawei/cnpm/-/cnpm-9.4.0.tgz 10063ms (cache miss)
npm http fetch POST 401 http://192.168.80.128:8081/repository/npm-huawei/-/npm/v1/security/advisories/bulk 81ms
npm http fetch POST 400 http://192.168.80.128:8081/repository/npm-huawei/-/npm/v1/security/audits/quick 14ms

added 1 package in 12s

55 packages are looking for funding
  run `npm fund` for details
npm info ok

查看请求信息

修改日志为 TRACE

2024-05-23 10:57:37,260+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies
2024-05-23 10:57:37,261+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context
2024-05-23 10:57:37,261+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://192.168.80.129:19000
2024-05-23 10:57:37,262+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connecting to /192.168.80.129:19000
2024-05-23 10:57:37,264+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connection established 172.19.0.2:51266<->192.168.80.129:19000
2024-05-23 10:57:37,264+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-42: set socket timeout to 20000
2024-05-23 10:57:37,265+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Executing request GET /npm-huawei/repository/npm/cnpm HTTP/1.1
2024-05-23 10:57:37,266+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED
2024-05-23 10:57:37,267+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED
2024-05-23 10:57:37,268+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 >> GET /npm-huawei/repository/npm/cnpm HTTP/1.1
2024-05-23 10:57:37,268+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 >> Host: 192.168.80.129:19000
2024-05-23 10:57:37,269+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 >> Connection: Keep-Alive
2024-05-23 10:57:37,270+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 >> User-Agent: Nexus/3.68.1-02 (OSS; Linux; 6.8.0-31-generic; amd64; 1.8.0_412)
2024-05-23 10:57:37,270+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 >> Accept-Encoding: gzip,deflate
2024-05-23 10:57:37,322+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << HTTP/1.1 200 
2024-05-23 10:57:37,323+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Server: nginx/1.26.0
2024-05-23 10:57:37,323+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Date: Thu, 23 May 2024 02:57:37 GMT
2024-05-23 10:57:37,323+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Content-Type: application/json;charset=UTF-8
2024-05-23 10:57:37,324+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Transfer-Encoding: chunked
2024-05-23 10:57:37,324+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Connection: keep-alive
2024-05-23 10:57:37,324+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Set-Cookie: HWWAFSESID=4e9c01d877f3742017c; path=/
2024-05-23 10:57:37,324+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Set-Cookie: HWWAFSESTIME=1716433052424; path=/
2024-05-23 10:57:37,325+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << lubanops-gtrace-id: v-648609-1716433057316-31065047
2024-05-23 10:57:37,325+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << lubanops-nenv-id: 269996
2024-05-23 10:57:37,325+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Vary: Origin
2024-05-23 10:57:37,325+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Vary: Access-Control-Request-Method
2024-05-23 10:57:37,326+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Vary: Access-Control-Request-Headers
2024-05-23 10:57:37,326+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Accept-Ranges: bytes
2024-05-23 10:57:37,326+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << X-Checksum-Md5: 1e8c11921bdcd2d8c4cfc4025686f11f
2024-05-23 10:57:37,327+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << X-Checksum-Sha1: b987478383d1324ab4877deadc93b7b556ccf6aa
2024-05-23 10:57:37,327+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << X-Checksum-Sha256: 76a8556306b0a8d4d12b75b41c93783aad6f33539e844d8dc145f848697965fa
2024-05-23 10:57:37,327+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << X-Checksum-Sha512: d674cacdcac9600d512e8a74968f015d0383f60e9ca01e2a566794583710c513238df03ac651f2ae6737b50fd1b4a6c03e3a1ff1a97bc33e3c2a0dee009916c8
2024-05-23 10:57:37,328+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.headers - http-outgoing-42 << Content-Disposition: attachment; filename="package.json"; filename*=UTF-8''%70%61%63%6B%61%67%65%2E%6A%73%6F%6E
2024-05-23 10:57:37,328+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS
2024-05-23 10:57:37,365+0800 DEBUG [qtp494527407-558] *UNKNOWN org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-42: set socket timeout to 0
2024-05-23 10:57:37,442+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies
2024-05-23 10:57:37,443+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.client.protocol.RequestAuthCache - Auth cache not set in the context
2024-05-23 10:57:37,443+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Opening connection {}->http://npm-huaweicloud-repo:80
2024-05-23 10:57:37,444+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connecting to npm-huaweicloud-repo/192.168.80.129:80
2024-05-23 10:57:37,445+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.conn.DefaultHttpClientConnectionOperator - Connection established 172.19.0.2:48586<->192.168.80.129:80
2024-05-23 10:57:37,445+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-43: set socket timeout to 20000
2024-05-23 10:57:37,446+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Executing request GET /repository/npm/cnpm/-/cnpm-9.4.0.tgz HTTP/1.1
2024-05-23 10:57:37,446+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED
2024-05-23 10:57:37,446+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED
2024-05-23 10:57:37,447+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 >> GET /repository/npm/cnpm/-/cnpm-9.4.0.tgz HTTP/1.1
2024-05-23 10:57:37,447+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 >> Host: npm-huaweicloud-repo
2024-05-23 10:57:37,447+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 >> Connection: Keep-Alive
2024-05-23 10:57:37,448+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 >> User-Agent: Nexus/3.68.1-02 (OSS; Linux; 6.8.0-31-generic; amd64; 1.8.0_412)
2024-05-23 10:57:37,448+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 >> Accept-Encoding: gzip,deflate
2024-05-23 10:57:37,488+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << HTTP/1.1 200 
2024-05-23 10:57:37,489+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Server: nginx/1.26.0
2024-05-23 10:57:37,489+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Date: Thu, 23 May 2024 02:57:37 GMT
2024-05-23 10:57:37,490+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Content-Type: application/octet-stream;charset=UTF-8
2024-05-23 10:57:37,490+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Content-Length: 9104956
2024-05-23 10:57:37,490+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Connection: keep-alive
2024-05-23 10:57:37,490+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Set-Cookie: HWWAFSESID=10752763c49e4d982f; path=/
2024-05-23 10:57:37,491+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Set-Cookie: HWWAFSESTIME=1716433057453; path=/
2024-05-23 10:57:37,491+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << lubanops-gtrace-id: v-648609-1716433057485-31065050
2024-05-23 10:57:37,491+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << lubanops-nenv-id: 269996
2024-05-23 10:57:37,492+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Vary: Origin
2024-05-23 10:57:37,492+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Vary: Access-Control-Request-Method
2024-05-23 10:57:37,492+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Vary: Access-Control-Request-Headers
2024-05-23 10:57:37,492+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Accept-Ranges: bytes
2024-05-23 10:57:37,493+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << X-Checksum-Md5: 36c7cca6641f98f52643282143c74f27
2024-05-23 10:57:37,493+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << X-Checksum-Sha1: be7d297247d203b9e84d02ca6953413245b6be7e
2024-05-23 10:57:37,493+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << X-Checksum-Sha256: 71d033b2211827787dff7f29144e1702bbdeabcf77a7fc7d32c8f6d5c1659511
2024-05-23 10:57:37,494+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << X-Checksum-Sha512: a31be8ce0bb212e5e9ff721ed0912d9872adf3e39ac997cd1f8d3f075826b68936fb47474d2d0ab78b949f9ad9f2a218364e54cf31559aed69671127d27a3f89
2024-05-23 10:57:37,494+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Last-Modified: Tue, 12 Mar 2024 14:19:33 GMT
2024-05-23 10:57:37,495+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << ETag: be7d297247d203b9e84d02ca6953413245b6be7e
2024-05-23 10:57:37,495+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.headers - http-outgoing-43 << Content-Disposition: attachment; filename="cnpm-9.4.0.tgz"; filename*=UTF-8''%63%6E%70%6D%2D%39%2E%34%2E%30%2E%74%67%7A
2024-05-23 10:57:37,496+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.execchain.MainClientExec - Connection can be kept alive for 30000 MILLISECONDS
2024-05-23 10:57:38,201+0800 DEBUG [qtp494527407-565] *UNKNOWN org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-43: set socket timeout to 0
2024-05-23 10:57:38,446+0800 INFO  [elasticsearch[4FBD7993-D2BC64CE-4043D5F0-3597D10E-6C305027][clusterService#updateTask][T#1]] *SYSTEM org.elasticsearch.cluster.metadata - [4FBD7993-D2BC64CE-4043D5F0-3597D10E-6C305027] [49e14cd1fa0acf53ef5ca2641b45486af3e096ff] update_mapping [component]

验证包

参考文档

https://help.sonatype.com/en/npm-registry.html#/

posted @ 2024-03-27 11:04  小吉猫  阅读(121)  评论(0编辑  收藏  举报