Проксирование Apache с портом 8081 на Geoserver 8080 для WFS

Я был в дилемме в течение нескольких дней, и теперь я был бы очень признателен за вашу помощь. Вот моя ситуация: - Ubuntu Linux (все порты открыты) - Apache работает на порту 8081 - Geoserver Tomcat на порту 8080 Я пытаюсь установить соединение 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

Я загрузил proxy.cgi из OpenLayers и отредактировал, добавив разрешенные хосты (localhost: 8081, localhost, mydomain: 8081 и т. д.). Когда я открываю proxy.cgi в веб-браузере, меня перенаправляют на сайт openlayers, поэтому я думаю что python и скрипт работают правильно. Затем я добавил http://mydomain.com:8081/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 на "http://mydomain.com:8081/cgi-bin/proxy.cgi?url=", но ничего. Что я могу сделать? Мне очень... очень нужна твоя помощь.

Заранее спасибо за ваши ответы


person Nicholas Sainsbury    schedule 15.02.2012    source источник


Ответы (2)


Убедитесь, что все свойства протокола Openlayers WFS правильно совпадают с соответствующими свойствами GeoServer.

в девяти случаях из десяти именно поэтому слой WFS не отображается.

Взгляните на мои ответы здесь и здесь.

person capdragon    schedule 16.02.2012
comment
Тот же вектор работает на машине геосервера. Я попытался изменить стратегию на фиксированную, но результат тот же. - person Nicholas Sainsbury; 16.02.2012
comment
Убедились ли вы, что свойства вашего геосервера совпадают? Оба ваших геосервера workspace name и layer name называются Inc? URI вашего пространства имен Geoserver Workspace имеет значение http://mydomain.com:8080/Incendi? - person capdragon; 16.02.2012
comment
Да, в самом деле. Они такие, как вы сказали. - person Nicholas Sainsbury; 17.02.2012

Решено путем размещения proxy.cgi на локальном apache, а не на apache, находящемся на компьютере с геосервером...

person Nicholas Sainsbury    schedule 20.02.2012
comment
Ответил на аналогичный вопрос здесь - person capdragon; 20.02.2012