一、Nexus3部署
1. 服务器说明
1.1. 环境及配置
具体信息如下表:
系统类型 | IP地址 | 节点角色 | CPU | Memory | Hostname |
---|---|---|---|---|---|
centos-7.9 | ... | 2 | 4G | syn-cloud-01 | |
2. 系统设置
注意:系统设置所有操作使用root用户执行
2.1 主机名
主机名必须合法,并且每个节点都不一样(建议命名规范:数字+字母+中划线组合,不要包含其他特殊字符)。
# 查看主机名
$ hostname
# 修改主机名
$ hostnamectl set-hostname syn-cloud-01
2.2 关闭防火墙、selinux、swap,重置iptables
# 关闭selinux
$ setenforce 0
$ sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
# 关闭防火墙
$ systemctl stop firewalld && systemctl disable firewalld
# 关闭swap
$ swapoff -a && free –h
3. 安装Nexus3
3.1 安装JDK
查看JDK软件包列表
yum search java | grep -i --color jdk
选择版本安装
yum install -y java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
查看JDK是否安装成功
java -version
例:如下提示即成功
[root@syn-cloud ~]# java -version
openjdk version "1.8.0_402"
OpenJDK Runtime Environment (build 1.8.0_402-b06)
OpenJDK 64-Bit Server VM (build 25.402-b06, mixed mode)
3.2 安装Nexus
3.2.1.Nexus资源包下载
Nexus官方下载地址:https://www.sonatype.com/download-oss-sonatype
Nexus官方文档地址:https://www.sonatype.com/oss-thank-you-tar.gz
3.2.2.Nexus 资源包解压
2.1、在 /usr/local目录中创建子目录 nexus
mkdir /usr/local/nexus
2.2、解压Nexus到指定目录
tar -zxvf nexus-3.66.0-02-unix.tar.gz -C /usr/local/nexus
Nexus 各个目录结构说明
目录名称 | 目录说明 |
---|---|
bin | 包含nexus的启动脚本以及启动相关的配置文件,例如通过bin/nexus.vmoptions文件,你可以配置一些JVM参数和日志存放位置等配置 |
etc | 包含应用级别的配置文件 |
lib | 包含 Apache Karaf 相关的jar包 |
public | 包含应用相关的公共资源 |
system | 包含应用相关的构件和插件 |
3.2.3.检查私服端口和工作目录
在nexus目录中有子目录 etc,其中保存私服应用的配置信息。查看nexus-default.properties 文件
vim /usr/local/nexus/nexus-3.66.0-02/etc/nexus-default.properties
确定私服访问端口和工作目录。如果没有端口相关冲突,该配置文件不做任何内容修改。配置文件内容如下:
## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
##
# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/
# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
nexus.hazelcast.discovery.isEnabled=true
3.2.4.修改Nexus运行用户
Nexus私服启动后,私服应用需要访问Linux的文件系统,所以需要有足够的权限。Nexus的启动脚本文件中,可以指定应用的访问用户,此信息在/usr/local/nexus/nexus-3.66.0-02/bin/nexus.rc
配置文件中定义。需修改如下信息:
run_as_user="nexus" # 修改后的内容,代表Nexus私服使用nexus用户权限
一般不建议使用root用户权限启动,可以新建一个nexus用户,启动Nexus具体操作如下:
3.2.4.1. 创建用户组 nexus
groupadd nexus
3.2.4.1.添加nexus到nexus组并创建用户目录(要先创建nexus组)
useradd -g nexus -m nexus
3.2.4.1.修改nexus用户登录密码
passwd nexus
3.2.4.1.修改nexus用户可登录
usermod -s /bin/bash nexus
3.2.4.1.将nexus用户的登录目录改成/usr/local/nexus,并加入nexus组,注意这里是大G。
usermod -d /usr/local/nexus -G nexus nexus
3.2.4.1. 将目录/usr/local/nexus 及其下面的所有文件、子目录的文件主改成 nexus
chown -R nexus:nexus /usr/local/nexus
3.2.5.修改防火墙,开放Nexus私服端口访问
修改防火墙配置文件,开放Nexus私服的访问端口 8081
vi /etc/sysconfig/iptables # 注意centOS系统环境
增加如下配置:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT
iptables status # 查看端口状态
service iptables restart # 重启防火墙
阿里云服务器,需要在阿里云管理后台,设置服务器的端口规则。不在iptables中限制端口的访问
3.3.启动并测试访问
如果已创建nexus用户切换到nexus用户下
su - nexus
启动Nexus私服
/usr/local/nexus/nexus-3.66.0-02/bin/nexus start
/usr/local/nexus/nexus-3.66.0-02/bin/nexus status
创建连接到 /etc/init.d下:
ln -s /usr/local/nexus/nexus-3.66.0-02/bin/nexus /etc/init.d/nexus
设置为开机启动:systemctl enable nexus
常用命令
#systemctl start nexus 进行启动
#systemctl enable nexus 加入开机启动
#systemctl stop nexus 停止
#systemctl restart nexus 重启
#systemctl status nexus 状态
8.查看初始密码,修改运行内存参数等
查看cat /usr/local/nexus/nexus-3.66.0-02/admin.password 初始密码
修改运行内存vim nexus.vmoptions启动成功访问:http://[你的IP]:8081
3.4.问题汇总
3.4.1问题:登录后nexus用户后,命令行提示:-bash-4.2$
原因:用户家目录里面与环境变量有关的文件被删除或缺失所导致的
也就是这俩文件:
- .bash_profile
- .bashrc
这两个文件被删除了,导致了这个错误
解决方法:
从/etc/skel把丢失的文件 复制回来就可以了
cp /etc/skel/.bash* ~
3.4.2问题:
No suitable Java Virtual Machine could be found on your system.
The version of the JVM must be 1.8.
Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
原因:
缺失jdk1.8或未配置jdk1.8环境变量
解决方法:
安装openjdk1.8版本即可
yum install -y java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
3.4.1阿里云服务外网域名访问
阿里云服务器配置外网域名可以访问,配置域名解析,通过Nginx配置访问nexus服务。
1、添加阿里云域名解析,如 nexus.[你的域名] 为例。
2、配置阿里云服务器的Nginx配置文件
server {
listen 80;
server_name nexus.[你的域名];
charset utf-8;
access_log logs/nexus_access.log main;
include proxy.conf;
location / {
proxy_pass http://127.0.0.1:8081;
}
location ~ ^/(WEB-INF)/ {
deny all;
}
location ~ \.(php|asp|aspx) {
deny all;
}
}
其中 proxy.conf 的内容为
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header RealIP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
proxy_connect_timeout 3s;
proxy_send_timeout 1m;
proxy_read_timeout 1m;
proxy_temp_file_write_size 1024m;
proxy_buffer_size 32k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_ignore_client_abort on;
proxy_next_upstream error timeout invalid_header http_503;
2、配置好,Nginx重新reload下,使配置生效。
3、通过域名测试访问是否生效。
访问域名为:http://nexus.[你的域名]