我正在尝试使用javascript中的以下代码访问Geoserver层
var gkvrtWmsSource =new ol.source.ImageWMS({
url:'http://geoserver-host-ip/geoserver/ukrforest/wms',
params: {'LAYERS':'kvartal_polygon'},
serverType:'geoserver',
crossOrigin: 'anonymous',
});
var gkvrtWmsLayer=new ol.layer.Image({
source:gkvrtWmsSource
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
gkvrtWmsLayer,
],
target: 'map1',
view: new ol.View({
center: ol.proj.transform([31, 50], 'EPSG:4326', 'EPSG:3857'),
zoom: 10
}),
});
Geoserver已在Ubuntu 16.04和Apache 2.4.18(Tomcat7)上配置
根据post https://stackoverflow.com/questions/25490051/access-geoserver-from-internet-ubuntu-server-14-04-1
在文件etc / apache2 / sites-available / 000-default.conf中添加了以下说明
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /geoserver "http://localhost:8080/geoserver"
ProxyPassReverse /geoserver "http://localhost:8080/geoserver"
然后在Ubuntu 16.04上启用4个模块以将Apache用作带有mod_proxy的反向代理
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
重新启动Apache
不过,在客户端上有以下消息
wms:1 GET http://geoserver-host-ip/geoserver/ukrforest/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=kvartal_polygon&CRS=EPSG%3A3857&STYLES=&WIDTH=444&HEIGHT=881&BBOX=3245143.983882646%2C6312336.14137978%2C3516648.308351592%2C6851064.316733702 403 (Forbidden)
我做错了什么?
最佳答案
实际上,在重新安装Geoserver之后,我设法访问了Geoserver图层。
因此,如果有人要使用Geoserver通过Openlayers发布地图图层,则可以考虑我的问题的详细信息。特别是如果出现跨域资源共享(CORS)的问题。
关于ubuntu - 从OpenLayer 3访问Geoserver得到“500(内部服务器错误)”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58419129/