2012-02-15 62 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