使用8081端口将Apache代理到Geoserver 8080 for WFS

时间:2012-02-15 11:56:19

标签: apache tomcat proxy openlayers geoserver

我已经陷入困境好几天了,现在我非常感谢你的帮助。 这是我的情况: - Ubuntu Linux(所有端口都已打开) - 在端口8081上运行的Apache - 端口8080上的Geoserver Tomcat 我试图通过与服务器不同的PC建立WFS连接,因此我需要使用代理。 在我的服务器中,我编辑了httpd.conf并添加了这些行:

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并进行了编辑以添加我允许的主机(localhost:8081,localhost,mydomain:8081等) 当我在Web浏览器中打开proxy.cgi时,我转发到openlayers站点,所以我认为python和脚本运行正常。 然后我将http://mydomain.com:8081/geoserver添加到geoserver仪表板中的基本代理URL。 在我的html中,我将每个脚本文件(如Openlayers.js,GeoExt,js)指向apache,使用端口8081。 在我的初始化函数中,我把:

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

和WFS的矢量图层是这样的:

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"

                                        }),
    });

我无法在地图上看到此图层,而firebug也没有记录任何内容。 我试图将ProxyHost链接更改为&#34; http://mydomain.com:8081 / cgi-bin / proxy.cgi?url =&#34;但没什么。 我能做什么? 我真的......真的需要你的帮助。

提前感谢您的回复

2 个答案:

答案 0 :(得分:2)

确保所有openlayers WFS协议属性与其对应的GeoServer属性正确匹配。

十分之九,这就是为什么WFS层没有出现的原因。

查看我的答案herehere

答案 1 :(得分:2)

通过将proxy.cgi放在本地apache而不是驻留在geoserver机器上的apache来解决...