nexus私服搭建

### 环境准备

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

### Docker一键部署nexus

~~~java
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
~~~

~~~java
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

![image-20260320102727403](C:/Users/34994/AppData/Roaming/Typora/typora-user-images/image-20260320102727403.png)

![image-20260320102822364](C:/Users/34994/AppData/Roaming/Typora/typora-user-images/image-20260320102822364.png)

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仓库

![img](file:///D:\QQDownloads\Tencent Files\3499477823\nt_qq\nt_data\Pic\2026-03\Ori\e9aee2ea38dfc055a0023c20317fda52.png)

![image-20260320132425857](C:/Users/34994/AppData/Roaming/Typora/typora-user-images/image-20260320132425857.png)

![image-20260320132513457](C:/Users/34994/AppData/Roaming/Typora/typora-user-images/image-20260320132513457.png)

![image-20260320132931476](C:/Users/34994/AppData/Roaming/Typora/typora-user-images/image-20260320132931476.png)

![image-20260320132953489](C:/Users/34994/AppData/Roaming/Typora/typora-user-images/image-20260320132953489.png)

![image-20260320133030056](C:/Users/34994/AppData/Roaming/Typora/typora-user-images/image-20260320133030056.png)

## 修改yum仓库

~~~java
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源生效与测试

~~~java
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
~~~

### 测试

~~~java
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搭建自己的私有仓库