2012-02-15 63 views
2

我几年来一直处于两难境地,现在我非常感谢您的帮助。 这里是我的情况: - Ubuntu Linux操作系统(所有端口打开) - 阿帕奇运行在端口8081 - 利用Geoserver的Tomcat在8080端口上 我试图做一个不同的PC比服务器WFS连接,所以我需要使用代理。 在我的服务器我编辑httpd.conf文件,并添加这些行:将8081端口的Apache代理到WFS的Geoserver 8080

ProxyRequests Off 
ProxyPreserveHost On 
<Proxy *> 
Order deny,allow 
Allow from all 
</Proxy> 
ProxyPass /geoserver http://mydomain.com:8080/geoserver 
ProxyPassReverse /geoserver http://mydomain.com:8080/geoserver 

我从下载的OpenLayers和proxy.cgi编辑加我的允许的主机(本地主机:8081,本地主机,MYDOMAIN:8081等) 当我在Web浏览器中打开proxy.cgi时,我被转发到了openlayers站点,所以我认为python和脚本运行正常。 然后,我将http://mydomain.com:8081/geoserver添加到geoserver仪表板中的基本代理URL。 在我的HTML我点像Openlayers.js,GeoExt每一个脚本文件,JS用端口8081 apache和这样在我的初始化函数,我把:

OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url="; 

,并与世界粮食首脑会议矢量图层是这样的:

var inc2007 = new OpenLayers.Layer.Vector("Inc", { 
              styleMap: styles1, 
     strategies: [new OpenLayers.Strategy.BBOX()], 
     protocol: new OpenLayers.Protocol.WFS({ 
      url: "http://mydomain.com:8081/geoserver/wfs", 
                featurePrexif: "Inc", 
                featureType: "Inc", 
      featureNS: "http://mydomain.com:8080/Incendi" 

             }), 
    }); 

我在地图上看不到这层,萤火虫不记录任何东西。 我试图将ProxyHost链接更改为“http://mydomain.com:8081/cgi-bin/proxy.cgi?url=”,但没有任何结果。 我能做什么? 我真的很需要你的帮助。

在此先感谢您的答复

回答

2

通过把proxy.cgi对当地的Apache,而不是驻留在GeoServer的机器上安装的Apache解决...

+0

已回答一个相似的[这里的问题](http://gis.stackexchange.com/questions/20328/path-to-proxy-cgi-for-geoserver-is-not-accessible-in-browser/20376#20376) – capdragon 2012-02-20 19:49:46

2

确保所有的OpenLayers WFS协议属性正确匹配到其相应的GeoServer的性能。

十分之九,这就是为什么WFS层不显示。

看看我的答案herehere

+0

同一矢量的运作GeoServer的机器上。我试图改变策略来修正,但结果是一样的。 – 2012-02-16 17:52:23

+0

你确定你是geoserver属性匹配吗?你的geoserver'workspace name'和'layer name'都被命名为“Inc”?您的Geoserver工作空间名称空间URI设置为“http://mydomain.com:8080/Incendi”? – capdragon 2012-02-16 18:20:20

+0

是的。他们如你所说。 – 2012-02-17 08:07:47