我开发了一个使用GeoServer的OpenLayers Web应用程序 . 我使用nginx作为我的网络服务器,为GeoServer设置了proxy_pass . 当我使用“localhost”时,一切都按预期工作,但当我切换到我的IP地址时,我得到504网关超时错误
http://98.153.141.207/geoserver/cite/wfs.
我可以访问GeoServer
http://98.153.141.207/geoserver/web
通过浏览器没有问题所以它会出现代理继续按预期工作 .
发生问题时,GeoServer日志会显示以下内容:
Request: describeFeatureType
service = WFS
version = 1.1.0
baseUrl = http://98.153.141.207:80/geoserver/
typeName[0] = {http://www.opengeospatial.net/cite}MyLayer
outputFormat = text/xml; subtype=gml/3.1.1
然后一分钟后,我在我的JavaScript控制台中获得了504 Gateway Time-Out,这显示在GeoServer日志中:
09 May 06:02:15 WARN [geotools.xml] - Error parsing: http://98.153.141.207/geoserver/wfs/DescribeFeatureType?version=1.1.0&typename=cite:MyLayer
我在浏览器中尝试了这个假设的问题URL,它运行正常 .
nginx erorr日志包含:
2013/05/09 06:02:15 [error] 420#3844: *54 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while reading response header from upstream, client: 98.153.141.207, server: localhost, request: "GET /geoserver/wfs/DescribeFeatureType?version=1.1.0&typename=cite:MyLayer HTTP/1.1", upstream: "http://127.0.0.1:8080/geoserver/wfs/DescribeFeatureType?version=1.1.0&typename=cite:MyLayer", host: "98.153.141.207"
进一步的调查显示,这个问题似乎仅限于WFS层 . WMS层工作正常 . 这是我的WFS图层失败的声明:
myLayer = new OpenLayers.Layer.Vector("MyLayer",
{
strategies: [new OpenLayers.Strategy.BBOX(),saveStrategy],
projection: "EPSG:2276",
protocol: new OpenLayers.Protocol.WFS(
{
version: "1.1.0",
url: "http://" + hostip + "/geoserver/cite/wfs",
featureNS: "http://www.opengeospatial.net/cite",
srsName: "EPSG:2276",
featureType: "MyLayer",
geometryName: "Poly",
schema: "http://" + hostip + "/geoserver/wfs/DescribeFeatureType?version=1.1.0&typename=cite:MyLayer"
})
});
任何帮助,将不胜感激 . 谢谢
我设法通过从我的图层的OpenLayer.Protocol.WFS中删除“schema”属性来实现此功能 . 任何人都可以解释为什么这会是问题?