GeoServer 服务器代理静态文件

0 阅读4分钟

^ 关注我,带你一起学GIS ^

前言

GeoServer 是一个基于Java的GIS服务器,它使用户能够查看和编辑地理空间数据。GeoServer遵循开放地理空间联盟(OGC)制定的开放标准,在地图创建和数据共享方面提供了极大的灵活性。

文中以GeoServer2.28.2为例进行讲解。

如果你还没有看过,建议从以上内容开始。

1. 软件环境

本文使用如下软件环境,以供参考,因为GeoSever的运行依赖于JDK,所以还需在服务器安装JDK并配置环境变量。

时间:2026年

系统:Windows 11

openjdk: 17.0.14

GeoServer:2.28.2

cmd窗口输入java -version命令,检查是否输出JDK版本信息。

如果没有,请先安装JDK。

2. GeoServer 代理静态文件

什么,GeoServer可以代理静态文件?嘿嘿,没想到吧,我也是才发现的。今天就赶忙来测试一下,看看效果怎么样。

印象中,可以使用IIS、Nginx之类的Web服务器代理文件和部署应用,但现在你可以在GeoServer中部署HTML、图像以及JavaScript。想想就挺美妙,这是不是意味着我可以把GeoServer当做Web服务器来使用呢。

首先打开GeoServer数据目录geoserver-2.28.2-bindata_dirwww

我们看到www文件夹下有几个示例文件,现在访问一下wfs-t.html文件看看效果。

浏览器访问地址为:http://host:8080/geoserver/www

当然,你在浏览器直接输入上述地址是无法访问的,此时的地址栏会变成http://host:8080/geoserver/www/index.html,而在www路径下没有index.html页面,所以直接404,找不到页面。

解决方式很简单,你只需要将index.html替换为wfs-t.html访问文件名称及后缀即可。http://host:8080/geoserver/www/wfs-t.html

浏览器显示如下。

现在我们向www文件夹拷入一个图片文件GeoServer 数据组织结构.png

在浏览器输入以下地址访问。http://host:8080/geoserver/www/GeoServer 数据组织结构.png

图片结果显示如下。

再向www文件夹拷入一个js文件srs.js在浏览器输入以下地址访问。http://host:8080/geoserver/www/srs.js

js文件结果显示如下。

3. GeoServer 代理局限

使用GeoServer代理静态文件具有一定的局限性。

这种方法没有利用加速器,如Tomcat APR库。如果需要高速提供大量静态文件,可能希望创建自己的Web应用程序,与GeoServer一起部署,或者使用单独的Web服务器来提供内容。

4. GeoServer 代理状态配置

可以将GEOSERVER_DISABLE_STATIC_WEB_FILES属性设置为true,从而在Content-Type HTTP响应头中将text/html和application/javascript内容类型转换为text/plain,这将阻止通过www目录提供网页。

如果www目录根本未被使用,或者仅用于提供除网页以外的文件(如PDF或Word文档),这将有助于防止存储的跨站点脚本漏洞。

默认行为是不转换这些内容类型。此属性可以通过Java系统属性、命令行参数(-D)、环境变量或web.xml初始化参数进行设置。

打开geoserver-2.28.2-binwebappsgeoserverWEB-INF目录,编辑web.xml文件。复制一个<context-param>标签,修改参数名为GEOSERVER_DISABLE_STATIC_WEB_FILES,参数值为true

 <context-param>
    <param-name>GEOSERVER_DISABLE_STATIC_WEB_FILES</param-name>
    <param-value>true</param-value>
 </context-param>

修改完成后保存文件,重启GeoServer服务。

再次访问wfs-t.html页面,发现变成了字符信息,说明配置信息生效了,如果想取消禁用,则将该值修改为flase

注意:一般情况下,建议禁用此属性,也就是将该值设置为true。

5. GeoServer 账户信息

GeoServer默认账号信息

服务访问地址:http://localhost:8080/geoserver

静态文件地址:http://localhost:8080/geoserver/www

端口:8080

账户: admin

密码:geoserver

参考资料

GeoServer:https://docs.geoserver.org/latest/en/user/tutorials/staticfiles.html

GIS之路 开发示例数据下载,请在公众号后台回复:vector

全国信息化工程师-GIS 应用水平考试资料,请在公众号后台回复:GIS考试


GIS之路 公众号已经接入了智能助手**,** 可以在对话框进行提问,也可以直接搜索历史文章进行查看。

都看到这了,不要忘记点赞、收藏 + 关注

本号不定时更新有关 GIS开发 相关内容,欢迎关注 !