专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
outbackcdx

ukwa/outbackcdx

自动构建
ukwa

基于RocksDB的网络档案捕获索引(CDX)服务器,支持OpenWayback(XML)和PyWb(JSON)协议,提供实时增量更新、压缩索引及主从复制功能,适用于大规模网络档案索引管理,已在澳大利亚国家图书馆和大英图书馆生产环境中处理80-90亿条记录。

1 次收藏下载次数: 0状态:自动构建维护者:ukwa仓库类型:镜像最近更新:5 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,快一点,稳很多。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,快一点,稳很多。点击查看

OutbackCDX(原tinycdxserver)

基于RocksDB的网络档案捕获索引(CDX)服务器。

  • https://nla.github.io/outbackcdx/api.html

核心功能与特性

  • 支持https://github.com/iipc/openwayback/%EF%BC%88XML%EF%BC%89%E5%92%8Chttps://github.com/webrecorder/pywb%EF%BC%88JSON%EF%BC%89%E4%B8%A4%E7%A7%8DCDX%E5%8D%8F%E8%AE%AE
  • 实时增量更新
  • 压缩索引(varint压缩+snappy),通常为CDX文件大小的1/4-1/5
  • 主从复制
  • 访问控制(实验性,详见下文)

暂不支持的功能

  • 分片、复制
  • CDXJ

使用场景与适用范围

已在澳大利亚国家图书馆和大英图书馆的生产环境中使用,处理80-90亿条记录的索引。

使用方法与配置说明

构建

bash
mvn package

运行

bash
java -jar target/outbackcdx*.jar

命令行选项

Usage: java -jar outbackcdx.jar [options...]

  -b bindaddr           绑定到特定IP地址
  -c, --context-path url-prefix
                        设置应用程序挂载的URL前缀
  -d datadir            存储索引数据的目录
  -i                    通过STDIN继承服务器套接字(用于systemd、inetd等)
  -j jwks-url perm-path 使用JSON Web Tokens进行授权
  -k url realm clientid 使用Keycloak服务器进行授权
  -m max-open-files     限制打开的.sst文件数量以控制内存使用
                        (默认值396,基于系统内存和ulimit -n)
  -p port               监听的本地端口
  -t count              Web服务器线程数
  -r count              为单个请求扫描的rocksdb记录数量上限
  -x                    默认输出CDX14(而非CDX11)
  -v                    详细日志
  -y file               自定义模糊匹配规范化YAML配置文件

主模式(作为下游从节点的复制目标运行)
  --replication-window interval      从磁盘删除复制历史的时间间隔(秒)。
                                     0禁用自动删除。可通过向/<collection>/truncate_replication
                                     POST复制序列号手动删除历史文件

从模式(只读运行;轮询上游服务器的'collection-url'获取变更)
  --primary collection-url           上游主节点上集合的轮询URL
  --update-interval poll-interval    上游变更的轮询频率(秒)。默认:10
  --accept-writes                    允许写入此节点,即使作为从节点运行
  --batch-size                       每个复制批次的近似最大大小(字节)

服务器支持多个命名索引作为子目录。目前,首次写入记录时会自动创建索引。

加载记录

OutbackCDX不包含用于读取WARC或ARC文件的CDX索引工具。使用OpenWayback或PyWb附带的cdx-indexer脚本。

可通过POST Wayback使用的(11字段)CDX格式记录来加载索引:

bash
$ cdx-indexer mycrawlw.warc.gz > records.cdx
$ curl -X POST --data-binary @records.cdx http://localhost:8080/myindex
Added 542 records

规范化URL(第一个字段)会被忽略,OutbackCDX会执行自己的规范化。

限制:在一个POST请求中加载极大量CDX记录可能导致https://github.com/nla/outbackcdx/issues/13%E3%80%82%E4%BF%AE%E5%A4%8D%E5%89%8D%E5%8F%AF%E8%83%BD%E9%9C%80%E8%A6%81%E5%B0%86%E8%AF%B7%E6%B1%82%E6%8B%86%E5%88%86%E4%B8%BA%E5%A4%9A%E4%B8%AA%E8%BE%83%E5%B0%8F%E8%AF%B7%E6%B1%82%E3%80%82%E5%A4%A7%E5%A4%9A%E6%95%B0%E7%94%A8%E6%88%B7%E6%AF%8F%E4%B8%AAWARC%E6%96%87%E4%BB%B6%E5%8F%91%E9%80%81%E4%B8%80%E4%B8%AAPOST%E3%80%82

删除记录

删除记录的操作与加载类似。将待删除记录POST到/{collection}/delete:

bash
$ curl -X POST --data-binary @records.cdx http://localhost:8080/myindex/delete
Deleted 542 records

删除时OutbackCDX不检查记录是否实际存在于索引中。删除不存在的记录无效果且不会导致错误。

查询

可按CDX格式查询记录:

bash
$ curl 'http://localhost:8080/myindex?url=example.org'
org,example)/ 20030402160014 http://example.org/ text/html 200 MOH7IEN2JAEJOHYXIEPEEGHOHG5VI=== - - 2248 396 mycrawl.warc.gz

JSON数组格式的CDX:

bash
$ curl 'http://localhost:8080/myindex?url=example.org&output=json'
[
  [
    "org,example)/",
    20030402160014,
    "http://example.org/",
    "text/html",
    200,
    "MOH7IEN2JAEJOHYXIEPEEGHOHG5VI===",
    2248,
    396,
    "mycrawl.warc.gz"
  ]
]

OpenWayback "OpenSearch" XML:

bash
$ curl 'http://localhost:8080/myindex?q=type:urlquery+url:http%3A%2F%2Fexample.org%2F'
<?xml version="1.0" encoding="UTF-8"?>
<wayback>
   <request>
       <startdate>19960101000000</startdate>
       <enddate>20180526162512</enddate>
       <type>urlquery</type>
       <firstreturned>0</firstreturned>
       <url>org,example)/</url>
       <resultsrequested>10000</resultsrequested>
       <resultstype>resultstypecapture</resultstype>
   </request>
   <results>
       <result>
           <compressedoffset>396</compressedoffset>
           <compressedendoffset>2248</compressedendoffset>
           <mimetype>text/html</mimetype>
           <file>mycrawl.warc.gz</file>
           <redirecturl>-</redirecturl>
           <urlkey>org,example)/</urlkey>
           <digest>MOH7IEN2JAEJOHYXIEPEEGHOHG5VI===</digest>
           <httpresponsecode>200</httpresponsecode>
           <robotflags>-</robotflags>
           <url>http://example.org/</url>
           <capturedate>20030402160014</capturedate>
       </result>
   </results>
</wayback>

查询匹配给定URL前缀的URL:

bash
$ curl 'http://localhost:8080/myindex?url=http://example.org/abc&matchType=prefix'

查找给定域名的前5个URL:

bash
$ curl 'http://localhost:8080/myindex?url=example.org&matchType=domain&limit=5'

从给定URL前缀开始查找索引中的下10个URL:

bash
$ curl 'http://localhost:8080/myindex?url=http://example.org/abc&matchType=range&limit=10'

按反向顺序返回结果:

bash
$ curl 'http://localhost:8080/myindex?url=example.org&sort=reverse'

按与给定时间戳的接近程度排序返回结果(从近到远):

bash
$ curl 'http://localhost:8080/myindex?url=example.org&sort=closest&closest=20030402172120'

有关可用选项的更多详细信息,请参见https://nla.github.io/outbackcdx/api.html%E3%80%82

配置回放工具

OpenWayback

通过配置RemoteResourceIndex将Wayback指向OutbackCDX索引。参见OpenWayback附带的示例RemoteCollection.xml。

xml
    <property name="resourceIndex">
      <bean class="org.archive.wayback.resourceindex.RemoteResourceIndex">
        <property name="searchUrlBase" value="http://localhost:8080/myindex" />
      </bean>
    </property>

PyWb

创建包含以下内容的pywb config.yaml文件:

yaml
collections:
  testcol:
    archive_paths: /tmp/warcs/
    #archive_paths: http://remote.example.org/warcs/
    index:
      type: cdx
      api_url: http://localhost:8080/myindex?url={url}&closest={closest}&sort=closest
    
      # outbackcdx不提供warc记录服务
      # 因此将replay_url设为空以强制pywb自行读取warc文件
      replay_url: ""

Heritrix

ukwa-heritrix项目包含https://github.com/ukwa/ukwa-heritrix/blob/21d31329065f2a6a68186309757a5644af00daec/src/main/java/uk/bl/wap/modules/uriuniqfilters/OutbackCDXRecentlySeenUriUniqFilter.java%EF%BC%8C%E5%85%81%E8%AE%B8%E5%B0%86OutbackCDX%E7%94%A8%E4%BD%9CHeritrix%E7%88%AC%E5%8F%96%E7%9A%84%E5%8E%BB%E9%87%8D%E6%95%B0%E6%8D%AE%E6%BA%90%E3%80%82

访问控制

可通过设置以下环境变量启用访问控制:

bash
EXPERIMENTAL_ACCESS_CONTROL=1

可通过GUI配置规则。让Wayback或其他客户端查询特定命名的访问点。例如,查询'public'访问点:

http://localhost:8080/myindex/ap/public

有关访问控制模型的详细信息,请参见docs/access-control.md。

规范化别名

别名记录允许对URL进行分组,使其表现为同一页面的不同快照。

@alias <源URL> <目标URL>

例如:

@alias http://legacy.example.org/page-one http://www.example.org/page1
@alias http://legacy.example.org/page-two http://www.example.org/page2

别名目前不适用于URL前缀查询。别名在应用常规规范化规则后解析。

别名可与常规CDX行混合在同一文件或单独文件中,顺序不限。添加别名到索引时,任何受别名规则影响其规范化URL的现有记录都会被更新。

别名删除功能尚未实现。

内存使用调优

RocksDB为每个打开的SST文件在内存中存储一些数据(二分查找索引、布隆过滤器)。这以增加内存使用为代价提高性能。OutbackCDX默认使用以下启发式方法限制打开的SST文件最大数量,以避免耗尽系统内存:

RocksDB max_open_files = (totalSystemRam / 2 - maxJvmHeap) / 10 MB

当使用多个大型索引或OutbackCDX与许多其他进程共享服务器时,此默认值可能不适用。可通过OutbackCDX的-m选项覆盖限制。

如果发现OutbackCDX内存使用过高或需要更高性能,可尝试调整此限制。最佳设置取决于索引大小和硬件。如果内存充足,-m -1(无限制)将允许RocksDB在启动时打开所有SST文件,并应提供最佳查询性能。但在慢速磁盘上,这也可能导致启动非常缓慢。可能还需要增加内核的最大打开文件描述符限制(ulimit -n)。

授权

默认情况下,OutbackCDX未受保护,假设使用防火墙规则或反向代理等外部方法进行授权。注意不要将其暴露到公共互联网。

或者,可启用以下授权方法之一。

通用JWT授权

可使用JSON Web Tokens控制修改索引和访问控制规则的授权。要启用此功能,通常需要使用某种单独的认证服务器来签名JWT。

OutbackCDX的-j选项接受两个参数:认证服务器公钥的JWKS URL,以及在作为HTTP bearer令牌接收的JWT中查找权限列表的斜杠分隔路径。有关使用方法,请参考认证服务器的文档。

目前,OutbackCDX Web仪表板不支持通用JWT/OIDC授权。(欢迎提交补丁。)

Keycloak授权

OutbackCDX可使用Keycloak作为认证服务器来保护API和仪表板。

  1. 在Keycloak领域设置中为OutbackCDX创建新客户端,协议为openid-connect,URL为OutbackCDX实例的URL。
  2. 在客户端的角色选项卡下创建以下角色:
    • index_edit - 可创建或删除索引记录
    • rules_edit - 可创建、修改或删除访问规则
    • policies_edit - 可创建、修改或删除访问策略
  3. 适当地将用户或服务账户映射到这些客户端角色。
  4. 使用以下选项运行OutbackCDX:
bash
-k https://{keycloak-server}/auth {realm} {client-id}

注意:使用Keycloak时会自动启用JWT认证。无需设置-j选项。

HMAC字段

OutbackCDX可配置为使用HMAC或加密摘要计算字段。此功能旨在与通过签名URL提供WARC文件临时访问的Web服务器或云存储提供商配合使用。为兼容各种存储服务器,消息结构和字段值通过模板配置。

--hmac-field name algorithm message-template field-template secret-key expiry-secs     

该字段将作为name提供给fl CDX查询参数。只要名称不同,可定义多个HMAC字段。

algorithm可以是HmacSHA256、HmacSHA1、HmacMD5、SHA-256、SHA-1、MD5或Java安全提供程序中的任何其他MAC或MessageDigest。根据Java的版本和配置,系统可能提供其他算法。

message-template配置HMAC或摘要函数的输入。参见下文的模板变量列表。

field-template配置返回的字段值,通常用于构造URL。参见下文的模板变量列表。

secret-key是HMAC函数的密钥。使用非HMAC摘要函数(无自然密钥参数)时,可使用$secret_value将密钥代入message-template。

expiry-secs参数用于计算此安全链接的过期时间。如果不使用$expires变量,只需将其设置为0。

模板变量

除每个捕获记录的字段($filename、$length、$offset等)外,模板中还提供以下额外变量:

  • $dollar - ***符号("$")
  • $expires - 过期时间(Unix时间戳,秒)
  • $expires_hex - 过期时间(十六进制Unix时间戳,秒)
  • $expires_iso8601 - 过期时间(UTC ISO 8601时间戳)
  • $hmac_base64 - 计算的hmac/digest值(base64字符串,仅在值模板中可用)
  • $hmac_base64_pct - 计算的hmac/digest值(base64字符串,+编码为%2B)
  • $hmac_base64_url - 计算的hmac/digest值(URL安全的base64字符串)
  • $hmac_hex - 计算的hmac/digest值(十六进制字符串,仅在值模板中可用)
  • $secret_key - 密钥(仅在消息模板中可用)
  • $now - 当前时间(Unix时间戳,秒)
  • $now_hex - 当前时间(十六进制Unix时间戳,秒)
  • $now_iso8601 - 当前时间(UTC ISO 8601时间戳)
  • $CR - 回车符("\r")
  • $CRLF - 回车换行符("\r\n")
  • $LF - 换行符("\n")

也可使用替代变量语法${filename}。

HMAC字段示例

nginx HTTP安全链接模块

注意:nginx附带的安全链接模块使用不安全的MD5算法。考虑使用社区开发的HMAC安全链接模块替代。

示例nginx配置:

nginx
location /warcs/ {
   secure_link $arg_md5,$arg_expires;
   secure_link_md5 "$secure_link_expires|$uri|$http_range|secret";
   if ($secure_link != "1") { return 403; }
   ...
}

对应的OutbackCDX选项:

bash
--hmac-field warcurl md5 '$expires|/warcs/$filename|$range|$secret_key'
     'http://nginx.example.org/warcs/$filename?expires=$expires&md5=$hmac_base64_url'
     secret 3600

[nginx HTTP HMAC安全链接

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 outbackcdx 镜像标签

docker pull docker.xuanyuan.run/ukwa/outbackcdx:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull ukwa/outbackcdx:<标签>

更多 outbackcdx 镜像推荐

ukwa/ukwa-pywb logo

ukwa/ukwa-pywb

ukwa
UKWA定制版pywb,包含UKWA专用代码和配置的Web归档访问系统,扩展了官方pywb镜像功能。
10万+ 次下载
2 年前更新
ukwa/ukwa-ui logo

ukwa/ukwa-ui

ukwa
UK Web Archive的集合前端Docker部署,提供Web存档的用户界面,支持通过Docker Compose集成Solr服务进行本地开发和部署。
10万+ 次下载
2 年前更新
ukwa/heritrix-worker logo

ukwa/heritrix-worker

ukwa
基于Heritrix3构建的Docker镜像,集成UK网络档案馆(UKWA)特定代码和配置,用于运行可扩展网络爬虫,支持病毒扫描、浏览器渲染、URL去重及Kafka消息队列等功能,适用于大规模网络内容归档。
1 次收藏1万+ 次下载
4 年前更新
ukwa/uptimerobot-prometheus-exporter logo

ukwa/uptimerobot-prometheus-exporter

ukwa
一个基于Golang的Prometheus导出器,用于监控UptimeRobot的监控项。
50万+ 次下载
7 年前更新
ukwa/ukwa-intranet logo

ukwa/ukwa-intranet

ukwa
暂无描述
5万+ 次下载
2 年前更新
ukwa/ukwa-manage logo

ukwa/ukwa-manage

ukwa
用于管理英国网络档案馆(UKWA)爬取生命周期的工具集,提供TrackDB管理、HDFS存储操作及CDX/Solr索引管理等核心功能。
2.9千+ 次下载
2 年前更新

查看更多 outbackcdx 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
ukwa/outbackcdx
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:51517718
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.