配置本地缓存服务器(一)

配置本地缓存服务器(一)

绝大多数系统管理员都遇到过开发部门抱怨软件包下载慢,严重影响工作效率的问题。对此问题,系统管理员也很无奈,无论接入带宽是10M、100M还是1G光纤,都不能解决这个问题。原因是很多时候下载慢并不是因为接入带宽不够,而是因为去源库的路上要翻越千山万水,克服重重困难,才能取到我们需要的真经。尽管分布在各地的各种镜像,缓解了部分问题,真正能解决问题的方式是建立本地镜像或缓存。

解决这个问题在最好办法是在本地建立镜像,但这种做法并不现实,资源要求太大,系统维护要求太高。我们采用了本地缓存方法来解决这个问题,原因是这种方式能解决绝大部分的问题,又没有大的资源和维护要求,完全能满足企业开发部门的需求。

本文将介绍如何使用多种缓存软件组合为完整的缓存服务器,满足企业软件开发部分的需求。

我们使用的免费缓存软件分别为:

Nexus Repository Manager 3 OSS:用于缓存 Bower、Docker、Git LFS、Maven、npm、NuGet、PyPI和Ruby Gems。

Apt-cacher-ng:该软件开发的目的是用于缓存Debian系的APT包,但实际上也能用于缓存YUM、RPM、BSD等的软件库。

SQUID:可缓存任意想缓存的内容,但配置复杂。我们将用它缓存其他软件库,如CPAN、CRAN、PECL等等。

下面我们将分别介绍它们的安装、配置和使用。




基于Nexus Repository Manager 3 OSS的缓存服务

这是由Sonatype公司开发的一款软件库管理软件,我们只介绍使用其缓存功能。我们可以从其下载页面获取该软件。


安装Nexus Repository Manager 3 OSS

安装Oracle Java 8
注意:NXRM 3 OSS 和 OpenJDK 有兼容性问题,所以安装Oracle的Java。

添加Oracle Java APT库

	add-apt-repository ppa:webupd8team/java

更新APT

	apt update

安装Java

	apt install oracle-java8-installer

检查已安装的Java

	root@appcache:~# java -version
	java version "1.8.0_191"
	Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
	Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
	root@appcache:~# 

将Nexus Repository 解压、安装到 /opt下

	tar xvzf nexus-3.14.0-04-unix.tar.gz -C /opt

链接 /opt/nexus-3.14.0-04 到 /opt/nexus

	ln -s /opt/nexus-3.14.0-04 /opt/nexus

设置 Nexus Repository 启停
在链接 /opt/nexus/bin/nexus 到 /etc/init.d/nexus

	ln -s /opt/nexus/bin/nexus /etc/init.d/nexus

设置自动启动和自动停止

update-rc.d nexus defaults

启动Nexus命令:service nexus start
停止Nexus命令:service nexus stop
重启Nexus命令:service nexus restart
显示Nexus状态:service nexus status
重新加载配置文件: /etc/init.d/nexus reload

Nexus Repository Manager已安装完成。重启系统,Nexus Repository Manager 将随系统自动启动。


设置Nexus Repository Manager 3 OSS

本文只介绍和缓存相关的内容。
在这里插入图片描述
这是管理员登陆后的界面,管理员默认登陆为admin:admin123。

点击上方工具条中的齿轮图标进入管理页面。
在这里插入图片描述
NXRM OOS是一个功能非常丰富的Repository管理系统,本文只涉及其中的一小部分:Repository缓存。
就是Repository部分,我们也只关心Repositories部分,其他三部分采用默认设置。

点击【Repositories】
在这里插入图片描述
可以看到这儿有三个Repositories已经建立,分别为maven-central、maven-imagej和maven-public。下面我们将分别介绍这三个库。


maven-central缓存库
在这里插入图片描述
这个库是用于缓存Maven的Central Repositoray,下面是一些参数介绍。

  • Name:必须在NXRM OSS中是唯一的,这里用的是maven-central
  • Type:这是缓存Central库,所以是proxy
  • URL:URL能操作到这个缓存库,这个链接是系统自动产生的。
  • Remote Repository:这是我们要缓存的库,这里是Central库,URL是https://repo1.maven.org/maven2/
  • Maximum Metadata Age:我们把数字从一天延长为一个月,目的是减少检查meta数据的频率,降低因获取metadata失败造成的build失败几率。
    在建立缓存库是,真正需要输入的只用NameRemote Repository。其他的采用默认值即可,默认值能满足绝大多数的需求。

maven-imagej缓存库
这个库是用于缓存ImageJ的Maven Repository。其他的设置和maven-central完全一样,除了NameRemote Repository
Name:maven-imagej
Remote Repository:http://maven.imagej.net/content/groups/public

maven-public缓存库

这个库和上面二个完全不一样,不是一个缓存库,它的作用是把该系统上的其他maven库集合成一个Maven总库,其他maven库中的artifacts都可以通过它来获取,它就是您的本地Central库。当增加新的Maven库时,开发者的本地Maven配置并不需要修改,这给开发人员提供了很大方便。

在这里插入图片描述
maven-public包含前面介绍的二个缓存库,maven-public查找排在最上面的库,如没找到需要的artifact,再从排在它下面的库中找。以此类推,直到找到或找完所有的成员库。

maven-public库的URL可点击它所对应的【Copy】键获取。
在这里插入图片描述

配置NXRM OSS就是这么方便,这是我们选用它来做 Bower、Docker、Git LFS、Maven、npm、NuGet、PyPI和Ruby Gems 的缓存服务器的一个重要原因。


使用Nexus Repository Manager 3 OSS

首先需要设置本地的Maven的配置,新建立的maven-public库将成为配置文件中的唯一Maven库。
$HOMEDIR/.m2/settings.xml

<settings>
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>lswin</id>
      <mirrorOf>*</mirrorOf>
      <url>http://appcache.lswin.cn:8081/repository/maven-public/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>lswin</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值