从OpenWayback迁移到pywb的配置转换指南
前言
在Web存档领域,OpenWayback和pywb都是广泛使用的工具。随着技术发展,越来越多的用户希望从OpenWayback迁移到更现代的pywb平台。本文将详细介绍如何将OpenWayback的各种配置转换为pywb兼容的配置格式,帮助用户顺利完成迁移工作。
远程集合/访问点配置转换
在OpenWayback中,远程集合配置通常包含远程索引和WARC访问设置。这种配置可以轻松转换为pywb支持的格式。
OpenWayback典型配置示例:
<bean name="standardaccesspoint" class="org.archive.wayback.webapp.AccessPoint">
<property name="accessPointPath" value="/wayback/"/>
<property name="collection" ref="remotecollection" />
</bean>
<bean id="remotecollection" class="org.archive.wayback.webapp.WaybackCollection">
<property name="resourceStore">
<bean class="org.archive.wayback.resourcestore.SimpleResourceStore">
<property name="prefix" value="http://myarchive.example.com/RemoteStore/" />
</bean>
</property>
<property name="resourceIndex">
<bean class="org.archive.wayback.resourceindex.RemoteResourceIndex">
<property name="searchUrlBase" value="http://myarchive.example.com/RemoteIndex" />
</bean>
</property>
</bean>
转换为pywb配置:
collections:
wayback:
index_paths: cdx+http://myarchive.example.com/RemoteIndex
archive_paths: http://myarchive.example.com/RemoteStore/
技术要点:
index_paths
使用cdx+
前缀表示远程CDX索引服务archive_paths
直接使用HTTP URL前缀访问WARC文件- 建议配合OutbackCDX服务使用,性能更佳
本地集合配置转换
对于使用本地CDX索引的OpenWayback配置,pywb提供了更简洁的配置方式。
OpenWayback本地集合示例:
<bean id="collection" class="org.archive.wayback.webapp.WaybackCollection">
<property name="resourceIndex">
<bean class="org.archive.wayback.resourceindex.cdxserver.EmbeddedCDXServerIndex">
<property name="cdxServer">
<bean class="org.archive.cdxserver.CDXServer">
<property name="cdxSource">
<bean class="org.archive.format.cdx.MultiCDXInputSource">
<property name="cdxUris">
<list>
<value>/wayback/cdx/mycdx1.cdx</value>
<value>/wayback/cdx/mycdx2.cdx</value>
</list>
</property>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
pywb等效配置:
collections:
wayback:
index_paths: /wayback/cdx/
archive_paths: ...
注意事项:
- 所有CDX文件应采用相同格式
- pywb会自动监控目录变化,无需额外配置
- 支持混合不同来源的索引,包括本地目录、单个文件和远程服务
自动监控CDX目录配置
OpenWayback的WatchedCDXSource功能在pywb中是内置特性。
OpenWayback配置:
<property name="source">
<bean class="org.archive.wayback.resourceindex.WatchedCDXSource">
<property name="path" value="/wayback/cdx-index/" />
</bean>
</property>
pywb简化配置:
collections:
wayback:
index_paths: /wayback/cdx-index/
archive_paths: ...
功能说明:
- pywb会自动加载指定目录下的所有CDX文件
- 支持递归扫描子目录
- 实时监控目录变化,自动加载新增CDX文件
ZipNum集群索引配置
对于大型存档,ZipNum压缩索引能显著提高性能。
OpenWayback ZipNum配置:
<bean id="collection" class="org.archive.wayback.webapp.WaybackCollection">
<property name="resourceIndex">
<bean class="org.archive.wayback.resourceindex.LocalResourceIndex">
<property name="source">
<bean class="org.archive.wayback.resourceindex.ZipNumClusterSearchResultSource">
<property name="cluster">
<bean class="org.archive.format.gzip.zipnum.ZipNumCluster">
<property name="summaryFile" value="/webarchive/zipnum-cdx/all.summary"/>
<property name="locFile" value="/webarchive/zipnum-cdx/all.loc"/>
</bean>
</property>
</bean>
</property>
</bean>
</property>
</bean>
pywb简化配置:
collections:
wayback:
index_paths: /webarchive/zipnum-cdx
surt_ordered: false # 如果索引不是SURT排序
关键点:
- pywb自动识别目录中的.summary和.loc文件
- 非SURT排序的索引需要显式声明
- 相比OpenWayback配置更简洁直观
路径索引配置
路径索引用于映射WARC文件名到实际存储位置。
OpenWayback路径索引:
<bean id="resourcefilelocationdb"
class="org.archive.wayback.resourcestore.locationdb.FlatFileResourceFileLocationDB">
<property name="path" value="/archive/warc-paths.txt"/>
</bean>
pywb配置:
collections:
wayback:
index_paths: ...
archive_paths: /archive/warc-paths.txt
路径索引文件格式:
example.warc.gz /some/path/to/example.warc.gz
another.warc.gz /some-other/path/another.warc.gz
remote.warc.gz http://warcstore.example.com/serve/remote.warc.gz
高级用法:
collections:
wayback:
index_paths: ...
archive_paths:
- /archive/warcs1/
- /archive/warcs2/
- https://myarchive.example.com/warcs/
- /archive/warc-paths.txt
pywb会按顺序尝试从这些位置加载WARC文件。
代理模式配置
OpenWayback的代理模式配置较为复杂,pywb提供了更简单的实现。
OpenWayback代理配置:
<bean id="proxyreplaydispatcher" class="org.archive.wayback.replay.SelectorReplayDispatcher">
<property name="renderer">
<bean class="org.archive.wayback.proxy.HttpsRedirectAndLinksRewriteProxyHTMLMarkupReplayRenderer">
<property name="uriConverter">
<bean class="org.archive.wayback.proxy.ProxyHttpsResultURIConverter"/>
</property>
</bean>
</property>
</bean>
pywb简化配置:
proxy:
source_coll: wayback
差异说明:
- pywb代理模式与常规访问使用相同端口
- 原生支持HTTPS代理,不强制重写为HTTP
- 提供CA证书支持HTTPS内容重写
- 配置更简洁,功能更强大
迁移建议
- 索引格式:考虑将传统CDX转换为pywb的CDXJ格式,获得更好性能
- 逐步迁移:可以先配置双系统运行,逐步验证转换结果
- 性能测试:迁移后应进行全面的性能测试和功能验证
- 利用新特性:探索pywb提供的新功能,如实时回放、更好的搜索等
通过本文的指导,您应该能够将现有的OpenWayback配置顺利迁移到pywb平台,享受更现代化的Web存档体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考