【问题标题】:Artifactory Migration - URL to files not workingArtifactory Migration - 文件的 URL 不起作用
【发布时间】:2022-09-28 05:08:58
【问题描述】:

我正在将 Artifactory 版本 6.11(zip 安装,安装在 RH7)升级和迁移到 7.35 版本(安装在新的服务器和主机名上,rpm 安装)。我在克隆的 VM 上执行此操作作为测试,因此与我们原始系统唯一不同的是主机名。正如文档建议的那样,我首先将 6.11 升级到 7.35,一切似乎都很顺利。我按照升级步骤操作,migration.sh 脚本成功完成。

我遇到的主要问题是,当我进入 Artifacts 时,\'url to file\' 会出现 502 Bad Gateway nginx 错误。在我看来,指针在某处不正确,我对它可能在哪里感到困惑。升级成功,所以我知道数据在那里,但 Artifactory 无法正确链接到它。

更新/澄清:为了改进我的描述:当我进入 Application bar / Artifactory / Artifacts 并从左侧列中选择一个 repo 时,\'url to file\' 无法加载。我假设这是树视图?

在当前工作的服务器上,诸如 https://acme/artifactory/repo 之类的 url 指向一个目录列表。但是,在新服务器上,如果我使用 http (在测试 VM 上未安装证书,但安装在原始服务器上)。

在 v7.35 中,我进入 \'http 设置\' 并将服务器提供程序切换为 nginx 和 apache(Tomcat 设置为默认值),虽然站点在两者下运行良好,但 repo 文件的 url 仍然失败nginx 错误,无论服务器提供商如何。

当我对原始服务器进行完整系统导出时,文档让我取消选中“排除数据”。我还导出了存储库,并通过路径将它们导入。一切似乎都像在原始服务器上一样正确显示,但是当我单击 url 时,我仍然无法查看目录列表。

可能是文件存储的位置不同吗?如果是这样,我将如何将其指向正确的位置?

V7.35: /opt/jfrog/artifactory/var/data/artifactory/filestore

V6.11: /opt/artifactory/artifactory-pro-6.11.3/data/filestore

基本 URL 与原始安装相同 http(s)://domain/artifactory

artifactory-service.log 的输出

2022-03-25T16:58:40.429Z [jfrt ] [INFO ] [3bb67ba1f30d560e] [ifactoryApplicationContext:564] [ttp-nio-8081-exec-10] - Artifactory application context set to READY by reload
2022-03-25T16:58:40.430Z [jfrt ] [INFO ] [3bb67ba1f30d560e] [c.CentralConfigServiceImpl:933] [ttp-nio-8081-exec-10] - Configuration reloaded.
2022-03-25T17:09:04.013Z [jfrt ] [INFO ] [708a8ae7c307ec92] [c.CentralConfigServiceImpl:914] [http-nio-8081-exec-5] - Reloading configuration... old revision 212, new revision 213
2022-03-25T17:09:04.121Z [jfrt ] [INFO ] [708a8ae7c307ec92] [c.CentralConfigServiceImpl:542] [http-nio-8081-exec-5] - New configuration with revision 213 saved.
2022-03-25T17:09:04.121Z [jfrt ] [INFO ] [708a8ae7c307ec92] [ifactoryApplicationContext:564] [http-nio-8081-exec-5] - Artifactory application context set to NOT READY by reload
2022-03-25T17:09:04.181Z [jfrt ] [INFO ] [708a8ae7c307ec92] [ifactoryApplicationContext:564] [http-nio-8081-exec-5] - Artifactory application context set to READY by reload
2022-03-25T17:09:04.181Z [jfrt ] [INFO ] [708a8ae7c307ec92] [c.CentralConfigServiceImpl:933] [http-nio-8081-exec-5] - Configuration reloaded.
2022-03-25T17:36:47.707Z [jfrt ] [INFO ] [d7bb51eedd93b03c] [aseBundleCleanupServiceImpl:84] [art-exec-20         ] - Starting to cleanup incomplete Release Bundles
2022-03-25T17:36:47.708Z [jfrt ] [INFO ] [d7bb51eedd93b03c] [b.ReleaseBundleServiceImpl:415] [art-exec-20         ] - Finished deleting orphan/unidentified items from _intransit repository
2022-03-25T17:36:47.709Z [jfrt ] [INFO ] [d7bb51eedd93b03c] [aseBundleCleanupServiceImpl:90] [art-exec-20         ] - Finished incomplete Release Bundles cleanup
  • 日志表明没有问题。您能否澄清以下两点。 1.您是否无法从 Artifactory UI 下载任何文件,即使它们在左侧树形视图的 UI 中可见。应用程序 > 工件 > 工件 > 扩展存储库 > 它应该显示工件列表 > 立即下载。让我知道你是否可以下载。 2. 当你在 IP 和端口上打开 Artifactory 时会发生什么? localhost:8082
  • @GajapathiKimidi 当我扩展存储库时,我可以向下钻取并下载 .rpm、.env。文件等。但是,\'url to file\' 总是以 502 Bad Gateway 结尾。当我加载 hostname:8082 时,它直接将我带到 Artifactory 登录屏幕。

标签: artifactory


【解决方案1】:

Artifactory 6 和 Artifactory7 的文件存储位置是正确的。 这向我表明问题出在您的反向代理上。 为了确认,您可以检查以下两件事。

  1. 在其 IP 和端口上打开您的 Artifactory。 http://localhost:8082/(如果没有修改,默认端口为8082)。现在转到 Artifactory 的应用程序选项卡中的树视图并尝试下载特定文件。如果您能够下载,那么问题可能不在于文件存储或升级。大多数情况下它应该是反向代理。 在这种情况下,导航到 Artifactory > Administration > Artifactory > HTTP Settings > Generate new settings > Place in reverse proxy 并重新启动。

  2. 在上述测试中,如果您仍然无法下载,请检查日志 ($JFROG_HOME/artifactory/var/log/artifactory-service.log) 如果您观察到类似于以下内容的消息。

     2022-03-24T20:15:35.072Z [jfrt ] [WARN ] [2a73d62655afd1ad] [.r.ArtifactoryResponseBase:136] [http-nio-8081-exec-9] - Sending HTTP error code 500: Could not process download request: Binary provider has no content for '165c79f8dff2f9e7d3ccadcbc295f7ef8e6e95f0'
    

    如果是,则表明 Artifactory 无法找到二进制文件。如果上述方法均无帮助,请在尝试下载文件时将上述日志文件中的日志 sn-p 与文件名一起发布到此处。

【讨论】:

  • 谢谢你快速的回复。我编辑了我的帖子,以展示我所做的一些事情,并在我的描述不是最好的情况下进行澄清。我还包括了我的 artifactory-service.log 的输出。我不确定这是否会获得很多信息,但如果另一个日志可能更有益,请告诉我。
【解决方案2】:

对于您的更新/澄清问题,请允许我澄清。 在 Artifactory 6.x 中,Artifactory 同时充当服务器和 UI,因此您可以使用“http://acme/artifactory URL,但是在 Artifactory 7.x 中,Artifactory 更改为使用多个微服务,并且 UI 已经移动到它自己的微服务(现在它被命名为“前端”)。您可以尝试使用此 URL http://acme/ui/native/REPOSITORY/ 访问“本机浏览器”。

为了补充上述内容和 Ganapathi 的回复,由于 Artifactory 现在使用“路由器”(外部端口为 8082 和internal 8046) 微服务​​将所有请求重定向到相应的微服务。您可以查看完整列表here

我希望这能澄清更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2014-12-18
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多