ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

nexus3部署和使用 https反向代理

2022-05-07 01:32:20  阅读:411  来源: 互联网

标签:compose 仓库 nexus nexus3 反向 proxy https docker data


应用在打包过程中需要下载很多依赖包,如果没有nexus仓库,就需要去公网下载,影响打包效率的同时会消耗大量带宽
nexus仓库会在打包过程中,将仓库没有的包通过Proxy的Remote Storage去下载依赖包,然后缓存到本地

经常用到的仓库Format为maven2
仓库类型分为proxy(代理仓库),group(仓库组),hosted(宿主仓库)
简单说一下仓库的特点,代理仓库可以配置Proxy的Remote Storage,自己仓库没有的包就会通过Proxy仓库去下载,内外网的地址都可选
group仓库组,则是把很多仓库加入到一个组中,用户拥有仓库组的情况下,可以按照仓库加入组的排序依次寻找依赖包
hosted宿主仓库,这种仓库在页面upload菜单中可以上传jar包

常用的仓库
snapshot 还在开发过程中的包
release 稳定发布的包

开始部署

部署使用docker-compose方式

ubuntu安装docker

apt install apt-transport-https
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
add-apt-repository \
    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
 # 查看可用版本
apt-cache madison docker-ce
# 安装指定版本
apt install docker-ce=5:19.03.13~3-0~ubuntu-focal docker-ce-cli=5:19.03.13~3-0~ubuntu-focal
# 开机启动
systemctl enable docker && systemctl start docker
systemctl stop docker
# 配置daemon.json,修改数据目录,配置代理
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
  "log-driver": "json-file",
  "log-opts": {"max-size":"500m", "max-file":"5"},
  "graph": "/data/docker-data"
}
EOF
# 将docker数据目录移动到/data目录
mv /var/lib/docker /data/docker-data
systemctl start docker

安装docker-compose

apt-get install docker-compose

配置nexus数据目录和权限

mkdir /data/nexus-data
chown -R 200 /data/nexus-data/

编辑compose文件

cat > /data/docker-compose.yaml <<EOF
version: '3'
services:
  maven:
    container_name: maven
    image: sonatype/nexus3:latest
    volumes:
      - /data/nexus-data:/nexus-data
    ports:
      - "80:8081"
networks:
  private01:
    driver: 'local'
EOF

# 配置数据目录,配置映射到宿主机的端口为80

启动nexus

# docker-compose 启动容器
docker-compose up -d

# 查看nexus管理员密码,用户名admin
echo `docker exec maven cat /nexus-data/admin.password`

# 配置向导,允许匿名访问

配置https反向代理

使用http访问没有出现报错,https代理后web页面一直报错 Operation failed as server could not be contacted
此报错截图
image
nexus官方反代配置参考

# 修改nexus配置文件
/data/nexus-data/etc/nexus.properties
nexus-context-path=/
# 让配置生效
docker-compose down
docker-compose up -d

# nginx反代配置
server {
        listen 172.16.0.16:443 proxy_protocol ssl;
        proxy_buffering    off;
        proxy_request_buffering off;
        server_name nexus.cf.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto "https";
        access_log /var/log/nginx/nexus.log;
        root /var/www/html;
        index index.html;

        location / {
            proxy_pass http://172.24.12.30;
        }
}
ngixn -s reload

配置在修改后没有再报错!

配置仓库权限

需求
1、添加一个proxy仓库
image
proxy仓库写一个代理地址,其他没有需要修改的。腾讯云或者阿里云的,还有就是内网nexus仓库的地址
http://mirrors.tencentyun.com/repository/maven-public/
2、添加一个本地研发使用的账号,不能上传release仓库,只能对maven-public和maven-snapshots上传、查看、读取的权限
添加一个role
image
添加一个用户,添加role到新用户
image

测试授权账号权限

登录账号后,查看可见仓库,和预期一致
上传包则需要开发mvn命令上传,目前的权限页面无法传包
image

标签:compose,仓库,nexus,nexus3,反向,proxy,https,docker,data
来源: https://www.cnblogs.com/Jarvansi/p/16240884.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有