Archiva安装笔记
Apache Archiva是个开源的Artifact Repository。 网上关于Archiva的文档并不太多,因此我在安装过程中遇到一些麻烦。在此记录下解决问题的过程。
安装Archiva
我们计划将其安装成Linux service,而且尽可能保持数据和代码分开。 首先从下载页面下载Archiva Standalone,然后解压。
解压之后获得个名为apache-archiva-2.2.3
的目录,将其移动到/opt
并改名为/opt/archiva
。
接下来要建立archiva用户:
$ sudo useradd archiva
修改/opt/archiva
的拥有者为archiva:
$ sudo chown -R archiva.archiva /opt/archiva
接下来,根据Archiva的安装文档, 我们要建立运行目录:
$ cd /var
$ sudo mkdir archiva
$ cd archiva
$ sudo mkdir logs data temp conf
$ sudo cp /opt/archiva/conf/* /var/archiva/conf/
$ cd /var/
$ sudo chown -R archiva.archiva archiva
接下来需要复制启动脚本到/etc/init.d
并做相应修改:
$ sudo cp /opt/archiva/bin/archiva /etc/init.d
$ sudo vi /etc/init.d/archiva
BASEDIR=/opt/archiva # 用这一行替换脚本里猜测BASEDIR的代码
DATADIR=/var/archiva # 增加这一行
WRAPPER_CMD="$BASEDIR/bin/wrapper" # 重要!不然启动脚本找不到archiva的命令
WRAPPER_CONF="$DATADIR/conf/wrapper.conf" # 重要!否则archiva找不到正确的配置
PIDDIR="$DATADIR/logs"
RUN_AS_USER=archiva # 重要!不要用root运行
接下来还有最后一步:
修改/var/archiva/conf/wrapper.conf
:
set.default.ARCHIVA_BASE=/var/archiva
这样archiva就能正常运行了。测试一下:
$ sudo /etc/init.d/archiva console
最后将其设置为自动启动:
$ sudo update-rc.d archiva defaults 80
修改端口号,以及nginx配置
Archiva的默认端口号是8080,如果与其他服务有冲突,可以修改/var/archiva/conf/jetty.xml
中的配置:
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
...
<Set name="port"><SystemProperty name="jetty.port" default="8081"/></Set>
最后添加Nginx代理:
upstream artifacts_server {
server 127.0.0.1:8081 fail_timeout=0;
}
server {
listen 80;
server_name artifacts.idv2.com;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://artifacts_server;
break;
}
}
}
然后登录到archiva中,选择”UI Configuration”并设置Application URL为实际的地址。
配置SSL
用certbot可以很方便地给nginx添加SSL设置。SSL添加完成之后,
需要打开/var/archiva/conf/archiva.xml
,找到<rest><baseUrl></baseUrl></rest>
配置项,
设置baseUrl
为实际的https地址。否则Web界面无法正常显示。(来源)