nexus私服搭建

环境准备

 Centos7.9 | Ubunt22.04 
    本次演示的是Centos7.9
    运行内存: 2G
    磁盘大小:20G | 50G 均可
    IP为: 10.0.0.81

Docker一键部署nexus

 https://www.sonatype.com/products/sonatype-nexus-repository
 ​
 https://juejin.cn/post/7134673536399966238
 ​
 ​
 docker run -d   --name nexus   --network host   -e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx512m -XX:MaxDirectMemorySize=1200m"   -v nexus-data:/nexus-data   sonatype/nexus
 ​
   
 docker run -d -p 666:8081 --name nexus  -e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx512m -XX:MaxDirectMemorySize=1200m" -v nexus-data:/nexus-data sonatype/nexus
 docker run -d --name nexus --restart unless-stopped --network host -v /opt/nexus-data:/nexusdata  -e NEXUS_DATA=/nexus-data   -e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx512m -XX:MaxDirectMemorySize=1200m" sonatype/nexus:latest
   
 docker run -d   --name nexus --restart unless-stopped --network host -v /opt/nexus-data:/nexus-data  -e NEXUS_DATA=/nexus-data  sonatype/nexus3:latest
   
  cat /opt/nexus-data/admin.password
    3d1621b3-d4bf-4e76-81d2-7ce26d28f9da

应用访问

http://10.0.0.83:8081

Nexus(全称 Nexus Repository Manager)是 Sonatype 公司开发的企业级制品仓库管理平台,是搭建 Maven、npm、Docker 等多生态私服的主流方案,核心是统一管理、加速下载、安全管控、内部共享

一、核心定位与价值

私服是企业内网的私有制品仓库,Nexus 是最成熟的私服实现,解决公共仓库的痛点:

  • 加速构建:内网缓存公共依赖,避免重复公网下载,平均提速 78%
  • 稳定可靠:公网故障 / 离线时仍可正常构建
  • 安全合规:权限控制、依赖审计、漏洞扫描
  • 内部共享:托管公司自研 SDK、组件、镜像,不对外暴露
  • 节省带宽:减少公网流量,降低成本

二、三大核心仓库类型(必懂)

Nexus 通过三类仓库实现完整的制品管理:

表格

类型英文作用典型场景
代理仓库Proxy代理远程公共仓库(Maven Central、npm 官方等),缓存已下载制品拉取第三方开源依赖
宿主仓库Hosted存储企业自研 / 私有制品,支持上传 / 发布内部 SDK、业务组件、私有镜像
仓库组Group聚合多个仓库(Proxy+Hosted),提供统一访问入口简化客户端配置,一次请求查所有仓库

三、支持的制品格式(多生态统一管理)

Nexus 3.x 原生支持主流技术栈:

  • Java/Maven:jar、pom、war、ear
  • 前端:npm、yarn、bower
  • 容器:Docker、Helm
  • 其他:PyPI、NuGet、Go、RubyGems、YUM、APT、Git LFS 等

四、核心功能

  1. 代理缓存:自动缓存远程仓库制品,下次直接内网获取
  2. 权限管控:RBAC 细粒度权限,支持 LDAP 集成,控制上传 / 下载 / 删除
  3. 版本管理:制品版本化、快照 / 发布版区分、清理策略
  4. 搜索与浏览:Web 界面快速检索、查看元数据、下载制品
  5. 安全审计:依赖漏洞扫描(Pro 版)、访问日志、合规检查
  6. CI/CD 集成:与 Jenkins、GitLab CI、GitHub Actions 无缝对接,自动发布

五、版本与部署

  • 版本:主流为 Nexus Repository OSS(开源免费)、Nexus Repository Pro(商业版,含高级安全 / 集群)
  • 部署:支持 Docker、Linux/Windows 二进制、K8s,开箱即用,内置 Jetty,无需额外数据库

六、典型工作流程(Maven 场景)

  1. 开发者 Maven 请求依赖 → 指向 Nexus 仓库组
  2. Nexus 先查本地 Hosted / 缓存 → 有则直接返回
  3. 无则通过 Proxy 拉取远程仓库 → 缓存后返回开发者
  4. 内部组件打包后,通过 Maven deploy 上传到 Hosted 仓库

七、为什么选 Nexus

  • 生态最成熟:Maven 私服事实标准,社区 / 文档完善
  • 多格式统一:一套平台管理全栈制品,降低运维成本
  • 性能与稳定:高并发、高可用,支持企业级规模
  • 安全能力强:漏洞检测、权限、审计,满足合规要求

nexus使用指南

创建yum仓库

修改yum仓库

 1.备份原有的yum源/aot源
 mkdir -p /etc/yumBacker
    mv /etc/yum.repos.d /etc/yumBacker
 
 #如果/etc/yum.repos.d/这个目录也给删了或者移动了,无法生效
 #解决方法创建/etc/yum.repos.d/并授权
 mkdir -p /etc/yum.repos.d/
 chmod 755 /etc/yum.repos.d/
 
 2.修改yum源
 ​
 vim /etc/yum.repos.d/nexus.repo
 [nexus]
 name=yumHosted
 baseurl=http://10.0.0.83:8081/repository/yumHosted/
 enabled=1
 gpgcheck=0
 ​
 ​

nexus源生效与测试

 1.清理原有的yum源
   yum clean all
 
 2.建立源数据缓存
   yum makecache
 ​
 3.检查状态
   yum repolist all
   yum repolist enabled
 4.  
 curl   http://10.0.0.83:8081/repository/yumHosted/
 ​
 5.
 wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.1-1.el7.ngx.x86_64.rpm
 
 6.上传到nexus
 curl -u admin:admin123 --upload-file nginx-1.20.1-1.el7.ngx.x86_64.rpm   http://10.0.0.83:8081/repository/yumHosted/
 ​
 7.使用yum list 查看可安装的软件包
    yum list
  可安装的软件包
  nginx.x86_64                                                 1:1.20.1-1.el7.ngx                nexus      

测试

  yum install -y nginx.x86_64 
     
 已加载插件:fastestmirror, langpacks
 Loading mirror speeds from cached hostfile
 正在解决依赖关系
 --> 正在检查事务
 ---> 软件包 nginx.x86_64.1.1.20.1-1.el7.ngx 将被 安装
 --> 解决依赖关系完成
 ​
 依赖关系解决
 ​
 ========================================================================================================================
  Package                 架构                     版本                                    源                       大小
 ========================================================================================================================
 正在安装:
  nginx                   x86_64                   1:1.20.1-1.el7.ngx                      nexus                   790 k
 ​
 事务概要
 ========================================================================================================================
 安装  1 软件包
 ​
 总下载量:790 k
 安装大小:2.8 M
 Downloading packages:
 nginx-1.20.1-1.el7.ngx.x86_64.rpm                                                                | 790 kB  00:00:00    
 Running transaction check
 Running transaction test
 Transaction test succeeded
 Running transaction
   正在安装   : 1:nginx-1.20.1-1.el7.ngx.x86_64                                                                     1/1
 ----------------------------------------------------------------------
 ​
 Thanks for using nginx!
 ​
 Please find the official documentation for nginx here:
 * https://nginx.org/en/docs/
 ​
 Please subscribe to nginx-announce mailing list to get
 the most important news about nginx:
 * https://nginx.org/en/support.html
 ​
 Commercial subscriptions for nginx are available on:
 * https://nginx.com/products/
 ​
 ----------------------------------------------------------------------
   验证中     : 1:nginx-1.20.1-1.el7.ngx.x86_64                                                                     1/1
 ​
 已安装:
   nginx.x86_64 1:1.20.1-1.el7.ngx                                                                                      
 ​
 完毕!
   
     
  查看是否上传成功
     
 curl -I -u admin:admin123  "http://10.0.0.83:8081/repository/yumHosted/nginx-1.20.1-1.el7.ngx.x86_64.rpm"
 HTTP/1.1 200 OK
 Server: Nexus/3.90.1-01 (COMMUNITY)
 X-Content-Type-Options: nosniff
 Content-Security-Policy: sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation
 X-XSS-Protection: 0
 ETag: "e30a6cfc21ff4ffa87138568a1e2fb70fab4bcf7"
 Last-Modified: Fri, 20 Mar 2026 04:37:32 GMT
 Content-Type: application/x-rpm
 Content-Length: 808876

看到安装成功,那么恭喜你,你已经会使用nexus搭建自己的私有仓库

4条评论

  1. Mass comment blasting: $10 for 100k comments. All from unique blog domains, zero duplicates. I will provide a full report and guarantee Ahrefs picks them up. Email mailto:helloboy1979@gmail.com for payment info.If you received this, you know Ive got the skills.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注