搭建nexus服务,实现本地仓库、代理仓库

搭建nexus服务,实现本地仓库、代理仓库

一、Nexus原理解析

1. Nexus定位与核心价值

Nexus Repository Manager(简称Nexus)是Sonatype推出的开源/商业仓库管理工具,核心作用是统一管理软件构件(Artifact),解决分布式开发中「依赖获取慢、本地构件分散、版本混乱」等问题,其核心价值体现在:

  • 缓存加速:代理远程公共仓库,拉取一次依赖后永久缓存,避免重复访问外网;
  • 本地构件管理:集中存储自研JAR/Docker/npm等构件,实现团队内共享;
  • 版本管控:区分Release(正式版)、Snapshot(快照版)构件,避免版本冲突;
  • 统一入口:通过仓库组整合多仓库,客户端仅需配置一个地址即可访问所有资源。

2. 仓库核心类型及设计原理

Nexus的仓库体系是「分层设计」,核心分为3类,各自承担不同职责:

仓库类型 英文类型 核心原理 典型应用场景
本地仓库 Hosted 本地存储构件,数据持久化到服务器磁盘,支持构件的部署、下载、版本管控 存储自研JAR包、公司内部通用组件、定制化镜像
代理仓库 Proxy 作为远程公共仓库的「中间层」,客户端请求构件时: 1. 先检查本地缓存是否存在; 2. 不存在则从远程仓库拉取并缓存; 3. 存在则直接返回缓存构件 代理Maven中央仓库、阿里云镜像、Docker Hub、npm官方仓库等
仓库组 Group 并非实际存储构件,而是「逻辑聚合层」: 1. 将多个Hosted/Proxy仓库整合为统一入口; 2. 按优先级顺序检索构件(本地仓库优先于代理仓库); 3. 简化客户端配置,无需对接多个仓库地址 整合「本地Release仓库+阿里云代理仓库+Spring代理仓库」,提供统一访问地址

3. 核心机制详解

(1)缓存机制(Proxy仓库核心)
  • 缓存触发:仅当客户端首次请求某构件时,Nexus才会从远程仓库拉取并缓存;
  • 缓存有效期:默认无过期时间,可通过「Cleanup Policies」配置自动清理旧缓存(如快照包保留7天);
  • 缓存存储:构件元数据(pom.xml)和二进制文件(JAR)分开存储,元数据优先校验更新。
(2)部署机制(Hosted仓库核心)
  • 版本策略
    • Release:仅允许部署非快照版本(如1.0.0),禁止重复部署(可配置允许重部署);
    • Snapshot:仅允许部署快照版本(如1.0.0-SNAPSHOT),支持重复部署(每次部署生成唯一时间戳版本);
    • Mixed:支持两种版本共存(不推荐,易造成版本混乱);
  • 部署权限:默认仅admin用户有部署权限,需通过「Roles/Privileges」配置普通用户权限。
(3)请求路由机制(Group仓库核心)

当客户端向仓库组发起请求时,Nexus按以下顺序检索构件:

  1. 遍历仓库组内的仓库列表(按配置的优先级);
  2. 第一个找到构件的仓库返回结果;
  3. 若所有仓库均无该构件,返回「构件不存在」错误。

4. Nexus架构逻辑

Nexus 3.x基于OSGi(开放服务网关 Initiative)架构,核心模块包括:

  • 仓库核心模块:管理不同类型仓库的创建、检索、部署;
  • 存储模块:统一管理构件存储(支持文件系统、S3等);
  • 安全模块:用户、角色、权限管控;
  • Web服务模块:提供REST API和Web UI;
  • 缓存模块:Proxy仓库的缓存策略管理。

二、环境准备(分系统适配)

1. 基础环境要求(通用)

  • 操作系统:Ubuntu 22.04 LTS / Rocky Linux 9(64位);
  • JRE:Nexus 3.20+内置OpenJDK 11,无需手动安装;
  • 硬件:内存≥2GB(生产≥4GB)、磁盘≥10GB(建议独立分区)、CPU≥2核;
  • 网络:服务器可访问外网(用于下载Nexus安装包、代理远程仓库);
  • 端口:默认8081(需确保未被占用,可自定义)。

2. 系统初始化配置(分系统操作)

(1)Ubuntu 22.04 配置
bash 复制代码
# 1. 更新系统包(解决依赖兼容性)
apt update && apt upgrade -y

# 2. 安装基础工具
apt install -y wget vim unzip curl net-tools

# 3. 防火墙配置(二选一)
## 测试环境:关闭UFW防火墙
ufw disable
## 生产环境:仅开放8081端口
ufw allow 8081/tcp
ufw reload

# 4. 调整文件描述符限制(解决Nexus文件句柄不足问题)
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf

# 5. 验证端口是否被占用(避免冲突)
netstat -tulpn | grep 8081
(2)Rocky Linux 9 配置
bash 复制代码
# 1. 更新系统包
dnf update -y

# 2. 安装基础工具
dnf install -y wget vim unzip curl net-tools

# 3. 防火墙配置(二选一)
## 测试环境:关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
## 生产环境:开放8081端口
firewall-cmd --add-port=8081/tcp --permanent
firewall-cmd --reload

# 4. SELinux配置(核心:Rocky默认开启,会拦截Nexus操作)
## 临时关闭
setenforce 0
## 永久关闭(重启生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 5. 调整文件描述符限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf

# 6. 验证端口占用
netstat -tulpn | grep 8081

三、Nexus安装(分系统统一步骤)

1. 安装包下载与解压(原理:Nexus为绿色包,解压即可运行)

bash 复制代码
# 创建统一安装目录(便于管理)
mkdir -p /opt/nexus
cd /opt/nexus

# 下载最新稳定版Nexus 3.x(官网:https://www.sonatype.com/products/sonatype-nexus-repository-oss)
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz

# 解压(tar.gz格式,-z解压gzip,-x提取,-v显示过程,-f指定文件)
tar -zxvf latest-unix.tar.gz

# 重命名(简化路径,避免版本号变动导致配置失效)
mv nexus-3.* nexus3  # 核心程序目录
mv sonatype-work sonatype-work3  # 数据存储目录(构件、配置、日志均在此)

# 查看目录结构(验证解压成功)
ls -l
# 预期输出:
# drwxr-xr-x 9 nexus nexus  4096 月  日 时:分 nexus3
# drwxr-xr-x 3 nexus nexus  4096 月  日 时:分 sonatype-work3

2. 安全配置:创建专用用户(原理:避免root运行带来的权限风险)

bash 复制代码
# 创建nexus用户组
groupadd nexus

# 创建nexus用户(-m创建家目录,-s禁止登录,-g指定用户组)
useradd -m -s /sbin/nologin -g nexus nexus

# 修改目录权限(核心:让nexus用户拥有完整操作权限)
chown -R nexus:nexus /opt/nexus/nexus3
chown -R nexus:nexus /opt/nexus/sonatype-work3

# 验证权限
ls -ld /opt/nexus/nexus3 /opt/nexus/sonatype-work3
# 预期输出:drwxr-xr-x 9 nexus nexus 4096 ...

3. 启动参数配置(原理:定制运行环境,适配服务器资源)

bash 复制代码
# 1. 指定运行用户(必须配置,否则会以root运行)
vim /opt/nexus/nexus3/bin/nexus.rc
# 添加以下内容并保存
run_as_user="nexus"

# 2. 调整JVM内存(根据服务器内存配置,原理:避免内存不足导致OOM)
vim /opt/nexus/nexus3/bin/nexus.vmoptions
# 修改以下参数(示例:2GB内存服务器配置)
-Xms1024m  # 初始堆内存(建议为最大堆的50%)
-Xmx2048m  # 最大堆内存(生产环境建议4GB+)
-XX:MaxDirectMemorySize=2048m  # 直接内存(与堆内存匹配)
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work3/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work3/nexus3
-Dkaraf.log=../sonatype-work3/nexus3/log
-Djava.io.tmpdir=../sonatype-work3/nexus3/tmp

4. 系统服务配置(分系统适配,原理:通过systemd实现开机自启、进程管控)

(1)Ubuntu 22.04 服务配置
bash 复制代码
# 创建systemd服务文件
vim /etc/systemd/system/nexus.service

# 粘贴以下内容(注释解释原理)
[Unit]
Description=Nexus Repository Manager  # 服务描述
After=network.target  # 网络启动后再启动Nexus

[Service]
Type=forking  # 后台运行模式(Nexus启动后会fork子进程)
LimitNOFILE=65536  # 提升文件句柄限制(解决大量构件访问时句柄不足)
User=nexus  # 运行用户
Group=nexus  # 运行用户组
ExecStart=/opt/nexus/nexus3/bin/nexus start  # 启动命令
ExecStop=/opt/nexus/nexus3/bin/nexus stop    # 停止命令
ExecRestart=/opt/nexus/nexus3/bin/nexus restart  # 重启命令
Restart=on-abort  # 异常退出时自动重启
TimeoutSec=600  # 启动超时时间(Nexus首次启动较慢)

[Install]
WantedBy=multi-user.target  # 多用户模式下开机自启

# 重新加载systemd配置(使服务生效)
systemctl daemon-reload

# 启动Nexus并设置开机自启
systemctl start nexus
systemctl enable nexus

# 验证服务状态(必须显示active (running))
systemctl status nexus
(2)Rocky Linux 9 服务配置
bash 复制代码
# 服务文件内容与Ubuntu完全一致,执行以下命令
vim /etc/systemd/system/nexus.service
# 粘贴上述Ubuntu的service内容,然后执行:
systemctl daemon-reload
systemctl start nexus
systemctl enable nexus
systemctl status nexus

5. 初始化访问与密码配置(原理:首次启动生成随机密码,保障初始安全)

(1)获取初始密码
bash 复制代码
# 等待Nexus完全启动(约1-2分钟,原理:首次启动需初始化数据库、目录结构)
sleep 120

# 读取初始密码(存储在sonatype-work3/nexus3/admin.password)
cat /opt/nexus/sonatype-work3/nexus3/admin.password
# 预期输出:随机UUID格式密码,如 7e8f9d0a-1b2c-3d4e-5f6g-7h8j9k0l1m2n
(2)Web界面初始化(原理:完成安全配置,适配实际使用场景)
  1. 浏览器访问:http://服务器IP:8081(首次加载可能需30秒);
  2. 点击右上角「Sign in」,用户名输入admin,密码粘贴上述随机密码;
  3. 强制重置密码(建议设置复杂度:Nexus@2025,原理:避免初始密码泄露);
  4. 匿名访问配置(测试环境建议启用,生产环境关闭,原理:匿名用户仅可读,保障数据安全)。

四、仓库配置(原理+实操)

1. 核心概念回顾

  • Hosted(本地仓库):本地存储,主动部署构件;
  • Proxy(代理仓库):远程缓存,被动拉取构件;
  • Group(仓库组):逻辑聚合,统一访问入口。

2. 创建本地仓库(Hosted)(Maven为例)

(1)原理:本地仓库是「自有构件的唯一存储源」,需区分版本类型(Release/Snapshot),避免正式版与快照版混存。
(2)实操步骤:
  1. 登录Nexus后,点击顶部齿轮图标(Server administration and configuration);
  2. 左侧菜单选择「Repositories」→ 点击「Create repository」;
  3. 选择仓库格式:找到「Maven」分类 → 点击「maven2 (hosted)」;
  4. 配置核心参数(原理注释):
参数名 配置值 配置原理
Name maven-hosted-release 见名知意,明确是Maven本地正式版仓库
Version policy Release 仅存储正式版构件,避免快照版混入生产环境
Layout policy Strict 严格遵循Maven标准布局(groupId/artifactId/version),确保构件可被正确检索
Deployment policy Allow redeploy 测试环境允许重部署(方便迭代),生产环境建议设为Deny redeploy(防止误覆盖)
Storage → Blob store default 存储块(默认即可,生产环境可创建独立Blob store分离存储)
Cleanup policies 暂不配置,后续可添加「自动清理旧构件」策略
  1. 点击「Create repository」完成创建(原理:Nexus会在磁盘创建对应目录,用于存储构件)。
(3)可选:创建快照版本地仓库

重复上述步骤,仅修改:

  • Name:maven-hosted-snapshot
  • Version policy:Snapshot
  • Deployment policy:Allow redeploy(快照版需频繁更新)。

3. 创建代理仓库(Proxy)(阿里云Maven镜像为例)

(1)原理:代理仓库是「远程仓库的本地镜像」,核心价值是缓存+提速,需选择稳定的远程源(如阿里云替代官方中央仓库)。
(2)实操步骤:
  1. 「Create repository」→ 选择「maven2 (proxy)」;
  2. 配置核心参数(原理注释):
参数名 配置值 配置原理
Name maven-proxy-aliyun 明确是代理阿里云Maven仓库
Remote storage https://maven.aliyun.com/repository/public 阿里云Maven镜像地址(比官方中央仓库https://repo1.maven.org/maven2/访问更快)
Version policy Release 与远程仓库版本策略一致(阿里云公共仓库以Release为主)
Layout policy Strict 匹配远程仓库的Maven标准布局
Proxy → HTTP Request Settings → Timeout 30 远程仓库请求超时时间(避免长时间阻塞)
Proxy → Cache → Max age 1440 缓存有效期(分钟),默认24小时,到期后校验远程仓库是否有更新
Storage → Blob store default 缓存文件存储位置
  1. 点击「Create repository」完成创建(原理:Nexus会初始化缓存目录,首次请求时触发拉取)。
(3)可选:代理其他常用仓库
仓库用途 仓库类型 Remote storage地址
Spring正式版 maven2 (proxy) https://repo.spring.io/release/
Maven快照版 maven2 (proxy) https://oss.sonatype.org/content/repositories/snapshots/

4. 创建仓库组(Group)(核心:统一访问入口)

(1)原理:仓库组是「逻辑层」,不存储构件,仅按优先级路由请求,客户端只需配置组地址,无需对接多个仓库。
(2)实操步骤:
  1. 「Create repository」→ 选择「maven2 (group)」;
  2. 配置核心参数(原理注释):
参数名 配置值 配置原理
Name maven-group-all 聚合所有Maven仓库的组名称
Member repositories 左侧选中以下仓库→添加到右侧: 1. maven-hosted-release 2. maven-hosted-snapshot 3. maven-proxy-aliyun 优先级:本地仓库 > 代理仓库(先查本地,再查代理,避免自研构件被远程覆盖)
Layout policy Strict 统一遵循Maven标准布局
Storage → Blob store default 无实际存储,仅逻辑配置
  1. 点击「Create repository」完成创建(原理:Nexus会生成组的访问地址,路由请求到成员仓库)。

五、客户端配置与验证(原理+实操)

1. Maven客户端配置(原理:让Maven优先访问Nexus仓库组)

修改Maven的settings.xml(路径:~/.m2/settings.xmlMAVEN_HOME/conf/settings.xml):

xml 复制代码
<settings>
  <!-- 配置Nexus账号(原理:部署构件时验证身份) -->
  <servers>
    <!-- 对应本地正式版仓库 -->
    <server>
      <id>maven-hosted-release</id>
      <username>admin</username>
      <password>Nexus@2025</password> <!-- 替换为你的Nexus密码 -->
    </server>
    <!-- 对应本地快照版仓库 -->
    <server>
      <id>maven-hosted-snapshot</id>
      <username>admin</username>
      <password>Nexus@2025</password>
    </server>
    <!-- 对应仓库组(读取权限,匿名访问开启时可省略) -->
    <server>
      <id>maven-group-all</id>
      <username>admin</username>
      <password>Nexus@2025</password>
    </server>
  </servers>

  <!-- 配置镜像(原理:将中央仓库请求转发到Nexus仓库组) -->
  <mirrors>
    <mirror>
      <id>maven-group-all</id> <!-- 与server.id一致 -->
      <name>Nexus Maven Group</name>
      <url>http://服务器IP:8081/repository/maven-group-all/</url> <!-- 仓库组地址 -->
      <mirrorOf>central</mirrorOf> <!-- 代理中央仓库(所有请求转发到Nexus) -->
    </mirror>
  </mirrors>

  <!-- 配置仓库Profile(原理:明确仓库地址和版本支持) -->
  <profiles>
    <profile>
      <id>nexus-repo</id>
      <repositories>
        <repository>
          <id>maven-group-all</id>
          <url>http://服务器IP:8081/repository/maven-group-all/</url>
          <releases><enabled>true</enabled></releases> <!-- 支持正式版 -->
          <snapshots><enabled>true</enabled></snapshots> <!-- 支持快照版 -->
        </repository>
      </repositories>
      <pluginRepositories> <!-- 插件仓库与构件仓库统一 -->
        <pluginRepository>
          <id>maven-group-all</id>
          <url>http://服务器IP:8081/repository/maven-group-all/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

  <!-- 激活Profile(原理:让配置生效) -->
  <activeProfiles>
    <activeProfile>nexus-repo</activeProfile>
  </activeProfiles>
</settings>

2. 功能验证(原理:验证缓存、部署、路由机制)

(1)验证代理仓库缓存机制
  1. 新建Maven空项目,添加简单依赖(如spring-boot-starter-web);
  2. 执行命令:mvn clean compile
  3. 验证逻辑:
    • 首次执行:Nexus的maven-proxy-aliyun仓库会从阿里云拉取依赖并缓存(可在Nexus Web界面→Repositories→maven-proxy-aliyun→Browse查看);
    • 第二次执行:Maven直接从Nexus缓存获取依赖,执行时间大幅缩短(原理:缓存命中,无需访问外网)。
(2)验证本地仓库部署机制
① 部署正式版构件
bash 复制代码
# 原理:通过mvn deploy命令将本地JAR包推送到Hosted仓库
mvn deploy:deploy-file \
  -DgroupId=com.company \
  -DartifactId=common-utils \
  -Dversion=1.0.0 \
  -Dpackaging=jar \
  -Dfile=./common-utils-1.0.0.jar \
  -Durl=http://服务器IP:8081/repository/maven-hosted-release/ \
  -DrepositoryId=maven-hosted-release

验证:在Nexus Web界面→Repositories→maven-hosted-release→Browse中可看到com/company/common-utils/1.0.0/目录及JAR包。

② 部署快照版构件
bash 复制代码
mvn deploy:deploy-file \
  -DgroupId=com.company \
  -DartifactId=common-utils \
  -Dversion=1.0.0-SNAPSHOT \
  -Dpackaging=jar \
  -Dfile=./common-utils-1.0.0-SNAPSHOT.jar \
  -Durl=http://服务器IP:8081/repository/maven-hosted-snapshot/ \
  -DrepositoryId=maven-hosted-snapshot

验证:快照版仓库中会生成带时间戳的构件(原理:Snapshot版本支持重复部署,每次生成唯一标识)。

(3)验证仓库组路由机制
  1. 在Maven项目中添加依赖:

    xml 复制代码
    <dependency>
      <groupId>com.company</groupId>
      <artifactId>common-utils</artifactId>
      <version>1.0.0</version>
    </dependency>
  2. 执行mvn clean compile

  3. 验证逻辑:Maven请求仓库组地址,Nexus先检索本地正式版仓库,找到构件后直接返回(原理:仓库组按优先级路由,本地仓库优先)。

六、运维管理

1. 核心运维操作(保障Nexus稳定运行)

(1)启停与状态查看(通用)
bash 复制代码
# 启动(原理:触发systemd执行nexus start脚本,启动JVM进程)
systemctl start nexus
# 停止(原理:优雅关闭JVM进程,保存数据)
systemctl stop nexus
# 重启(原理:先停止再启动,适用于配置修改后)
systemctl restart nexus
# 查看状态(原理:检查systemd进程状态和JVM运行状态)
systemctl status nexus
# 查看日志(原理:排查启动/运行异常,核心日志在sonatype-work3)
tail -f /opt/nexus/sonatype-work3/nexus3/log/nexus.log
(2)端口修改(修改应用监听端口,适配网络策略)
bash 复制代码
# 编辑端口配置文件
vim /opt/nexus/nexus3/etc/nexus-default.properties
# 修改以下行(示例:改为8082)
application-port=8082
application-host=0.0.0.0  # 允许所有IP访问

# 重启Nexus生效
systemctl restart nexus

# 系统端口开放(分系统)
## Ubuntu 22.04
ufw allow 8082/tcp
ufw reload
## Rocky Linux 9
firewall-cmd --add-port=8082/tcp --permanent
firewall-cmd --reload
(3)缓存清理(Proxy仓库缓存过期/异常时,强制刷新)
  1. 登录Nexus Web界面→Repositories→选择代理仓库(如maven-proxy-aliyun);
  2. 点击「Maintenance」→「Clear cache」→「Confirm」;
  3. 原理:删除本地缓存文件,下次请求会重新从远程仓库拉取最新构件。
(4)数据备份(原理:Nexus核心数据在sonatype-work3,需定期备份)
bash 复制代码
# 停止Nexus(避免备份时数据写入)
systemctl stop nexus

# 备份数据目录(原理:打包压缩,保留完整目录结构)
tar -zcvf /backup/nexus-data-$(date +%Y%m%d).tar.gz /opt/nexus/sonatype-work3

# 启动Nexus
systemctl start nexus

# 验证备份文件
ls -lh /backup/nexus-data-*.tar.gz

2. 性能优化(原理:适配生产环境高并发、大存储需求)

(1)内存优化(原理:避免JVM OOM,提升并发处理能力)

修改/opt/nexus/nexus3/bin/nexus.vmoptions

复制代码
# 4GB内存服务器配置
-Xms2048m
-Xmx4096m
-XX:MaxDirectMemorySize=4096m
# 8GB内存服务器配置
-Xms4096m
-Xmx8192m
-XX:MaxDirectMemorySize=8192m
(2)存储优化(原理:分离数据存储,提升IO性能)
  1. 挂载独立磁盘到/opt/nexus/sonatype-work3
  2. 创建独立Blob store(Nexus Web界面→Blob Stores→Create blob store),将仓库存储切换到新Blob store;
  3. 原理:构件存储是IO密集型操作,独立磁盘/SSD可大幅提升读写速度。
(3)权限优化(原理:最小权限原则,避免权限滥用)
  1. 创建普通用户:Nexus→Security→Users→Create user;
  2. 创建角色:Security→Roles→Create role→选择「Nexus role」,仅分配「repository-view-maven2-xxx-read/deploy」权限;
  3. 绑定用户到角色:Users→编辑用户→Roles→添加自定义角色;
  4. 原理:避免使用admin用户进行日常操作,降低安全风险。

七、常见问题排查

问题现象 底层原理 解决方案(分系统)
8081端口无法访问 1. 防火墙未开放端口; 2. Nexus未启动; 3. SELinux拦截(Rocky) Ubuntu: 1. ufw status检查端口; 2. systemctl status nexus检查服务; Rocky: 1. firewall-cmd --list-ports检查端口; 2. getenforce确认SELinux为Disabled;
初始密码文件不存在 Nexus首次启动未完成初始化(需1-2分钟) 1. 等待Nexus启动:sleep 120; 2. 检查日志:tail -f sonatype-work3/nexus3/log/nexus.log; 3. 确认路径:ls /opt/nexus/sonatype-work3/nexus3/
Maven部署构件失败 1. settings.xml中server.id与仓库名不匹配; 2. 仓库Deployment policy为Deny redeploy; 3. 用户无部署权限 1. 核对server.id与仓库Name一致; 2. 仓库配置中改为Allow redeploy; 3. 给用户分配「repository-deploy」权限;
代理仓库无法拉取构件 1. 远程仓库地址错误; 2. 服务器网络无法访问外网; 3. 缓存策略配置异常 1. 验证远程地址:curl https://maven.aliyun.com/repository/public; 2. 检查服务器DNS/网关; 3. 清理缓存后重试;
Nexus启动报OOM JVM堆内存不足,无法加载核心模块 增大nexus.vmoptions中的-Xms/-Xmx参数;

总结

本文从「原理+实操」双维度,覆盖了Nexus的核心设计逻辑、Ubuntu 22.04/Rocky Linux 9系统下的完整搭建步骤、仓库配置、客户端适配、运维优化等全流程。核心要点:

  1. 原理层面:理解Hosted/Proxy/Group三类仓库的分工与协作机制,掌握缓存、部署、路由的底层逻辑;
  2. 实操层面:区分Ubuntu和Rocky的系统差异(防火墙、SELinux),严格遵循「非root运行」「权限最小化」等安全原则;
  3. 运维层面:聚焦数据备份、性能优化、问题排查,保障Nexus稳定运行。
相关推荐
乂爻yiyao2 小时前
Java LTS版本重要升级特性对照表
java·开发语言
原来是好奇心2 小时前
深入Spring Boot源码(六):Actuator端点与监控机制深度解析
java·开发语言·源码·springboot
叠叠乐2 小时前
robot_state_publisher 参数
java·前端·算法
过期动态2 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
WizLC3 小时前
【Java】各种IO流知识详解
java·开发语言·后端·spring·intellij idea
Mr.朱鹏3 小时前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
小张快跑。3 小时前
【Java企业级开发】(十一)企业级Web应用程序Servlet框架的使用(上)
java·前端·servlet
星星不打輰3 小时前
SSM项目--SweetHouse 甜蜜蛋糕屋
java·spring·mybatis·ssm·springmvc
Knight_AL3 小时前
Java 线程池预热(Warm-up)实战:开启与不开启到底差多少?
java·开发语言