在 Linux 系统上安装 nexus 私库的相关理解和详细操作记录(主要依据官方文档)

Nexus 官网文档地址:https://help.sonatype.com/repomanager3
Nexus 版本包括收费版 Nexus Repository Manager PRO 和 开源免费版 Nexus Repository Manager OSS,本文使用 开源免费 OSS 版。
当前最先版本:Latest Version: 3.27.0-03

本文中目录相关的引用说明
nexus tar 包文件解压之后,会有两个文件夹,分别

  • $intall-dir 对应 nexus-3.27.0-03
  • $data-dir 对应 sonatype-work/nexus3

1 系统需求

wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.27.0-03-unix.tar.gz

执行时,4G 和公司网络均无法连接到下载地址,最后通过迅雷下载工具曲线实现下载,然后上传到服务器的。

官方建议新建并使用专用账户 nexus 来运行,不要使用 root 用户。

useradd nexus

Nexus 需要消耗比系统用户默认值更多的 file handler,在运行 nexus 之前需要将 open files descriptors 限制提高到 65536 或者更高。
在 /etc/security/limits.conf 添加如下内容,nexus 为用户ID

nexus - nofile 65536

上面的修改,nexus 进程下次重启有效。

最小 CPUs 4 个,建议CPUs 8 个。
查看CPU信息:

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
2
cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores	: 4
cat /proc/cpuinfo| grep "processor"| wc -l
8

必须设置 jvm heap memory 的最小值(-Xms)和最大值(-Xmx),且值大小必须相等,最大值不超过 4G。

内存设置通用指南:

  • 最小主机物理内存 8G
  • 堆内存最小值(-Xms)和最大值(-Xmx)必须相等
  • 最小堆内存 2703MB
  • 最大堆内存 <= 4G
  • 最小直接内存(-XX:MaxDirectMemorySize)大小 2703MB
  • 最小未分配物理/RAM内存应不小于总物理RAM的1/3,以允许进行虚拟内存交换
  • 最大堆内存 + 最大直接内存 <= 总物理内存 * 2/3

最大内存配置示例:

Physical/RAM Memory Example Maximum Memory Configuration
8GB
-Xms2703M
-Xmx2703M
-XX:MaxDirectMemorySize=2703M
12GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=4014M
16GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=6717M
32GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=17530M
64GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=39158M

2 关于安装

不建议安装并运行在用户目录,而是建议使用 /opt 目录。

第一步,解压下载好的 nexus-3.27.0-03-unix.tar.gz 到 /opt/nexus 目录;

tar zxvf nexus-3.27.0-03-unix.tar.gz

第二步,在 nexus bin 目录下运行

./nexus run

上面的命令会在当前 shell 启动 nexus 并显示日志输出。“Started Sonatype Nexus” 日志输出显示之后,就可以访问 nexus 服务了。CTRL + C 可以结束停止 nexus 服务。
除了上面的 run 命令,也可以使用 nexus 脚本的 start、stop、restart、force-reload 和 status 命令,让 nexus 作为后台应用服务来管理。

2.1 作为服务来运行

生产环境一般将 nexus 作为服务或者后台进程来运行,服务器重启时,nexus 也重启。nexus 发行包不包括运行服务的配置。与操作系统无关的三步如下:

  • 创建专用的操作系统用户,用于将 nexus 作为服务来运行;
  • 确认安装了正确的 Java 运行环境;
  • 配置服务确保其在操作系统启动时启动;

在 bin/nexus.rc 中指定专用用户:

run_as_user="nexus"

创建 $intall-dir/bin/nexus 到 /etc/init.d/nexus 软链接

sudo ln -s /opt/nexus-3.15.2-01/bin/nexus /etc/init.d/nexus

使用 chkconfig,使 init.d 中的初始化脚本运行 nexus 服务,运行下面的命令脚本激活服务

cd /etc/init.d
sudo chkconfig --add nexus
sudo chkconfig --levels 345 nexus on
sudo service nexus start

chkconfig 管理 /etc/rc[0-6].d 中的文件软链接,当操作系统重启或者切换运行级别的时候,这些软链接控制服务的启动和停止

2.2 配置内存

  1. 打开 $install-dir/bin/nexus.vmoptions
  2. 找到下面配置内存的行
-Xms2703M
-Xmx2703M
-XX:MaxDirectMemorySize=2703M
  1. 用如下格式修改配置项的值,数字size数值和字母单位(大小写均可)

-Xmssize[g|G|m|M|k|K]
-Xmxsize[g|G|m|M|k|K]
-XX:MaxDirectMemorySize=size[g|G|m|M|k|K]

  1. 保存文件,并确保 运行 nexus 服务的用户拥有文件权限和所有权

2.3 修改 HTTP 端口

默认端口是 8081,编辑 $data-dir/etc/nexus.properties 文件,修改配置项 application-port

application-port=9081

2.4 修改 Context Path

编辑 $data-dir/etc/nexus.properties 文件,修改默认值 nexus-context-path=/

nexus-context-path=/components/

2.5 配置数据目录

我们可以在文件 $install-dir/bin/nexus.vmoptions 中配置新数据目录位置。相关配置项 -Dkaraf.data,-Djava.io.tmpdir,-Dkaraf.log 和 -XX:LogFile,例如

-Dkaraf.data=/opt/sonatype-work/nexus3
-Djava.io.tmpdir=/opt/sonatype-work/nexus3/tmp
-XX:LogFile=/opt/sonatype-work/nexus3/log/jvm.log
-Dkaraf.log=/opt/sonatype-work/nexus3/log

2.6 配置临时目录

Nexus 临时目录默认使用 java 虚拟机临时目录来存储重要的运行时文件。

建议临时目录设置在 nexus 数据目录中的 $data-dir/tmp,同时必须满足

  • nexus 服务运行用户必须是文件拥有者并具有运行权限,否则启动 nexus 会报错;
  • 不要处理任何临时目录中的文件,尤其是在服务运行时;
  • 确保文件目录所在磁盘拥有 1GB 以上的剩余空间;

修改临时目录,打开并编辑 $install-dir/bin/nexus.vmoptions 文件,修改 -Djava.io.tmpdir=…/sonatype-work/nexus3/tmp 所在行的值,可以是绝对目录或者 $install-dir/bin 的相对目录。

2.7 使用反向代理

在公司的服务器上,出于某些原因,nexus 需要运行在反向代理后面,比如只统一开放 80 端口等。

nginx 反向代理配置示例

http {
   
  
  proxy_send_timeout 120;
  proxy_read_timeout 300;
  proxy_buffering    off;
  keepalive_timeout  5 5;
  tcp_nodelay        on;
  
  server {
   
    listen 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值