Nexus 是一款流行的仓库管理系统,主要用于存放和分享 Maven、Docker 和 NuGet 等包。在软件开发中,使用 Nexus 可以帮助团队更好地管理和发布项目依赖。本文将从 Nexus 的概述、安装和部署、配置和备份恢复等方面详细讲解 Nexus 的部署过程。

一、Nexus 的概述

Nexus 是一款专门用于存储和分享构建依赖、Docker 镜像和 NuGet 包等的仓库管理系统。Nexus 提供了可靠的、灵活的、易于使用的仓库管理功能,可以有效地降低应用程序开发、测试和发布的成本和风险。Nexus 的特点包括:

  • 多种仓库协议:Nexus 支持多种仓库协议,如 Maven、Gradle、Ivy、SBT、npm、Bower、RubyGems、PyPI、Docker 和 NuGet 等。
  • 分布式部署支持:Nexus 可以实现分布式部署,将仓库数据分散存储到多个节点上,实现负载均衡和高可用性。
  • 安全认证:Nexus 支持 LDAP、Active Directory、OAuth 等多种身份验证和授权机制,保障仓库的安全性。
  • 应用场景广泛:Nexus 不仅可以用于 Java 应用,也可以用于其他语言和工具的构建、发布和管理。

二、Nexus 的安装和部署

Nexus 的安装和部署过程需要注意以下几个方面:

1. 硬件和软件要求

在部署 Nexus 时,需要注意硬件和软件的要求。通常情况下,建议使用 Linux 操作系统进行部署。此外,需要保证操作系统具有足够的内存和磁盘空间,以保障 Nexus 的运行。

2. 下载和解压 Nexus

官网下载地址 https://www.sonatype.com/products/sonatype-nexus-oss-download

如果慢的话可以用百度网盘下载;

链接:https://pan.baidu.com/s/1zK3qnO47gfgn9MFxbrUrBA
提取码:6fiq

下载好后,解压到指定目录。例如,可以使用以下命令解压 Nexus:

$ tar -xvf nexus-3.54.1-01-unix.tar.gz -C /opt/

解压后,将会在 /opt 目录下生成一个名为 nexus-3.54.1-01 的目录。

3. 设置 Nexus 的运行用户

为了保证 Nexus 运行的安全性,需要创建专门的用户来运行 Nexus。可以使用如下命令创建用户:

$ sudo useradd -r nexus

然后,将解压后的 Nexus 目录的所有者设置为 nexus 用户,以及指定组和权限:

$ sudo chown -R nexus:nexus /opt/nexus-3.54.1-01
$ sudo chmod -R 755 /opt/nexus-3.54.1-01

4. 启动 Nexus

启动 Nexus 可以使用如下命令:

$ sudo su - nexus      # 切换到 nexus 用户
$ cd /opt/nexus-3.54.1-01/bin
$ ./nexus run        # 启动 Nexus

启动后,可以使用浏览器访问 Nexus Web 界面:http://localhost:8081/nexus/

三、Nexus 的配置

Nexus 的配置主要包括仓库管理、用户认证、SSL 证书和代理设置等方面。

1. 仓库管理

仓库管理是 Nexus 最重要的功能之一,它允许用户进行仓库的添加、删除、修改和查询等操作。在 Nexus 中,可以创建多个分组、代理和主机仓库,并通过仓库组来组织和管理这些仓库。例如,可以使用以下命令创建一个 Maven 仓库:

$ sudo su - nexus     # 切换到 nexus 用户
$ cd /opt/nexus-3.54.1-01/bin
$ ./nexus create_repository maven2 hosted test-maven2-hosted

其中,maven2 表示仓库类型,hosted 表示该仓库为主机仓库,test-maven2-hosted 表示仓库的名称。

2. 用户认证

Nexus 支持多种身份验证和授权机制,如 LDAP、Active Directory、OAuth 等。用户可以通过创建用户和角色,来实现对仓库的访问和控制。例如,可以使用以下命令创建一个新用户:

$ ./nexus create_user admin testpassword

可以使用以下命令为用户添加角色:

$ ./nexus add_user_role admin nx-admin

其中,admin 是用户名,testpassword 是密码,nx-admin 是角色名称。

3. SSL 证书

Nexus 支持 HTTPS 协议和 SSL 加密传输,在使用 HTTPS 协议时,需要配置 SSL 证书。通常情况下,可以使用自签名证书来验证 Nexus 的身份。例如,可以使用如下命令生成自签名证书:

$ sudo keytool -genkey -alias nexus -keyalg RSA -keystore keystore.jks -keysize 2048

然后,可以将生成的 keystore.jks 文件复制到 Nexus 的 etc 目录下,并修改 Nexus 的配置文件 conf/nexus.properties,添加以下配置:

nexus.ssl.keystore=/opt/nexus-3.54.1-01/etc/keystore.jks
nexus.ssl.keystore.password=password
nexus.ssl.truststore=/opt/nexus-3.54.1-01/etc/keystore.jks
nexus.ssl.truststore.password=password

其中,nexus.ssl.keystore 和 nexus.ssl.truststore 分别指定了 SSL 证书和信任证书库的位置和密码。

4. 代理设置

在使用 Nexus 进行包管理时,可能会遇到访问外部存储库速度较慢的问题,此时可以配置代理来加速下载。Nexus 支持多种代理设置,例如 HTTP 代理、SSL 代理和 SOCKS 代理等。可以通过修改 Nexus 的配置文件 conf/nexus.properties,添加以下配置来实现代理设置:

# 设置 HTTP 代理
http.proxyHost=proxy.example.com
http.proxyPort=8080

# 设置 SSL 代理
https.proxyHost=proxy.example.com
https.proxyPort=8080

# 设置 SOCKS 代理
socks.proxyHost=proxy.example.com
socks.proxyPort=1080

其中,proxy.example.com 和相应的端口号需要根据实际情况进行修改。

四、Nexus 的备份和恢复

为了保障 Nexus 的数据安全,需要定期对 Nexus 进行备份。Nexus 的备份通常包括两个方面:文件备份和数据备份。

1. 文件备份

Nexus 的文件备份可以通过将 Nexus 所在目录整体备份来完成。例如,可以使用 tar 命令备份 Nexus 的整个目录:

$ sudo tar -czvf nexus-backup-20230522.tar.gz /opt/nexus-3.54.1-01

这样,可以将 Nexus 的整个目录打包成一个名为 nexus-backup-20230522.tar.gz 的压缩文件,并备份到指定位置。

2. 数据备份

Nexus 的数据备份可以通过导出和导入仓库数据来完成。可以使用如下命令导出 Maven 仓库数据:

$ sudo su - nexus    # 切换到 nexus 用户
$ cd /opt/nexus-3.54.1-01/bin
$ ./nexus export maven2 hosted test-maven2-hosted /tmp/maven2-backup.zip

其中,maven2 表示要导出的仓库类型,hosted 表示要导出的仓库类型为主机仓库,test-maven2-hosted 表示要导出的仓库名称,/tmp/maven2-backup.zip 是导出文件的路径和名称。

导出完成后,可以将导出文件进行备份。需要恢复时,可以使用如下命令导入仓库数据:

$ sudo su - nexus    # 切换到 nexus 用户
$ cd /opt/nexus-3.54.1-01/bin
$ ./nexus import maven2 /tmp/maven2-backup.zip

其中,maven2 表示将导入的仓库类型,/tmp/maven2-backup.zip 是导出文件的路径和名称。

注意,在进行数据备份和恢复时,需要暂停 Nexus 的服务,以免数据不一致或丢失。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐