故障排除

本节将与集成的geoWebcache及其解决方案讨论一些常见问题。

网格不对齐

有时从geoWebcache端点请求数据时会发生错误。显示的错误可能表示“不支持分辨率”或“边界不对齐”。这是由于客户端发出的WMS请求与geoWebcache创建的瓦片网格不对齐,例如地图边界或层边界不同,或者分辨率不受支持。如果您使用Openlayers作为客户机,查看所包含演示的源代码可能会提供更多匹配网格的线索。

另一种解决方法是实现WMS与地理服务器WMS的直接集成。你可以把这个放在 缓存默认值 页。

直接WMS集成

直接集成允许通过geoserver服务的WMS请求被缓存,就像geoWebcache接收和处理它们一样。通过直接的WMS集成,请求可以由geoserver wms或geoWebcache wms处理。

有时,应该转到geoWebcache的请求将被传递到geoServer,从而不会保存任何图块。也就是说,可以确定geoWebcache在预期的情况下没有处理请求的原因。这是通过使用命令行实用程序完成的 cURL 以及检查响应头。

首先,获取样本请求。通过转到给定层的层预览,设置 Tiled 参数到 Tiled ,然后右键单击地图的某个区域并将完整路径复制到图像位置。如果操作正确,结果将是一个如下所示的GET请求:

http://localhost:8090/geoserver/nurc/wms?LAYERS=nurc%3AArc_Sample&STYLES=&FORMAT=image%2Fjpeg&TILED=true&TILESORIGIN=-180%2C-90&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=-45,-45,0,0&WIDTH=256&HEIGHT=256

然后可以将此URL粘贴到curl请求中:

curl -v "URL"

例如:

curl -v "http://localhost:8090/geoserver/nurc/wms?LAYERS=nurc%3AArc_Sample&STYLES=&FORMAT=image%2Fjpeg&TILED=true&TILESORIGIN=-180%2C-90&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=-45,-45,0,0&WIDTH=256&HEIGHT=256"

备注

要忽略终端的原始图像输出,请将输出通过管道传输到系统的空值。在Linux/OS X上,附加 > /dev/null 对于这些请求,并在Windows上附加 > nul .

如果请求没有通过geowebcache的wms,那么在自定义响应头中将给出一个原因。查找以下响应头:

  • geowebcache-cache-result :会说 HIT 如果geoWebcache wms处理了请求,并且 MISS 否则。

  • geowebcache-miss-reason :如果上面显示为 MISS ,这将生成一个简短的描述,说明为什么geoWebcache wms不处理请求。

下面是一些随响应一起发出的请求示例。这些响应被截断,只显示与故障排除相关的信息。

成功的请求

此请求已由geoWebcache wms成功处理。

请求:

curl -v "http://localhost:8080/geoserver/topp/wms?TILED=true&LAYERS=states&FORMAT=image/png&REQUEST=GetMap&STYLES=&SRS=EPSG:4326&BBOX=-135,45,-112.5,67.5&WIDTH=256&HEIGHT=256"

回复:

< HTTP/1.1 200 OK
< Content-Type: image/png
< geowebcache-crs: EPSG:4326
...
< geowebcache-layer: topp:states
< geowebcache-gridset: EPSG:4326
< geowebcache-tile-index: [2, 6, 3]
...
< geowebcache-cache-result: HIT
< geowebcache-tile-bounds: -135.0,45.0,-112.5,67.5
...

高度参数错误

geoWebcache wms不处理以下请求,因为请求的图像(256x257)不符合预期的256x256磁贴大小。

请求:

curl -v "http://localhost:8080/geoserver/topp/wms?TILED=true&LAYERS=states&FORMAT=image/png&REQUEST=GetMap&STYLES=&SRS=EPSG:4326&BBOX=-135,45,-112.5,67.5&WIDTH=256&HEIGHT=257"

回复:

< HTTP/1.1 200 OK
< Content-Type: image/png
< geowebcache-miss-reason: request does not align to grid(s) 'EPSG:4326'
...

没有关联的瓦片层

geoWebcache wms不处理以下请求,因为请求的层没有配置磁贴层。

请求:

curl -v "http://localhost:8080/geoserver/topp/wms?TILED=true&LAYERS=tasmania_roads&FORMAT=image/png&REQUEST=GetMap&STYLES=&SRS=EPSG:4326&BBOX=-135,45,-112.5,67.5&WIDTH=256&HEIGHT=256"

回复:

< HTTP/1.1 200 OK
< Content-Type: image/png
< geowebcache-miss-reason: not a tile layer
...

缺少参数筛选器

以下请求不由geoWebcache wms处理,因为该请求包含未为此层配置的参数筛选器(bgcolor)。

请求:

curl -v "http://localhost:8080/geoserver/topp/wms?BGCOLOR=0xAAAAAA&TILED=true&LAYERS=states&FORMAT=image/png&REQUEST=GetMap&STYLES=&SRS=EPSG:4326&BBOX=-135,45,-112.5,67.5&WIDTH=256&HEIGHT=256"

回复:

< HTTP/1.1 200 OK
< Content-Type: image/png
< geowebcache-miss-reason: no parameter filter exists for BGCOLOR
...

CRS未定义

geoWebcache wms不处理以下请求,因为该请求引用的CRS(epsg:26986)与任何瓦片层网格集都不匹配:

请求:

curl -v "http://localhost:8080/geoserver/topp/wms?TILED=true&LAYERS=states&FORMAT=image/png&REQUEST=GetMap&STYLES=&SRS=EPSG:26986&BBOX=-135,45,-112.5,67.5&WIDTH=256&HEIGHT=256"

回复:

< HTTP/1.1 200 OK
< Content-Type: image/png
< geowebcache-miss-reason: no cache exists for requested CRS
...

工作区样式

如果缓存层使用绑定到工作区的样式,则需要在该工作区的上下文中查看该层,以使该样式可见。尝试缓存这样的层会导致错误。

默认情况下,嵌入的geoWebcache使用全局工作区。可以使用 WORKSPACE 参数。要启用此功能,请为名为 WORKSPACE .将默认值设置为包含样式的工作区的名称。在大多数情况下,设置其他值并不有用。

将样式移动到新工作区需要更新筛选器。

此参数仅适用于集成瓦片层。如果要将远程geoserver上的geoserver层直接添加到gwc中,请像通常那样将工作区指定为路径的一部分。

Previous: 磁盘配额
Next: 扩展