请提供地理服务器建议 - HTTP 状态 400 - 错误请求
Posted
技术标签:
【中文标题】请提供地理服务器建议 - HTTP 状态 400 - 错误请求【英文标题】:Geoserver advice please - HTTP Status 400 – Bad Request 【发布时间】:2021-06-06 03:11:44 【问题描述】:我真的希望有人能帮助我指明正确的方向。
我在 Ubuntu 18.04 服务器上的 Tomcat 9 中部署了 Geoserver。
在我将 SSL 添加到 Apache 虚拟主机之前,一切都运行良好。我登录 Geoserver 没有问题,但是当我尝试更改任何内容(例如,保存新设置或尝试向 Geoserver 添加数据)时,我收到此错误:
HTTP 状态 400 – 错误请求 类型状态报告 消息来源与请求不对应 描述 由于被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧或欺骗性请求路由),服务器无法或不会处理请求。 Apache Tomcat/9.0.43
这只是在我添加 SSL 之后才发生的,如果我在 Apache 中删除 SSL 虚拟主机并像 HTTP 一样运行站点,我不会收到错误。
谁能指点我正确的方向?
谢谢
【问题讨论】:
您需要 edit 使用 Apache 和 GeoServer 日志文件中的详细信息提出问题。之后要检查的第一件事是docs.geoserver.org/latest/en/user/security/webadmin/csrf.html 感谢伊恩为我指明了正确的方向。 @lan 在那个页面错误代码是 403 但这里我们有 400 【参考方案1】:我使用此处的说明解决了这个问题:https://dev.to/iamtekson/using-nginx-to-put-geoserver-https-4204
在 GeoServer 管理站点的 Settings > Global > Proxy Base URL 下添加了我的域名:https:www.mydomain.com
勾选“使用代理 URL 标头”
在此处的 web.xml 中添加了以下代码:/webapps/geoserver/WEB-INF/web.xml
<context-param>
<param-name>GEOSERVER_CSRF_WHITELIST</param-name>
<param-value>example.org</param-value>
</context-param>
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>*</param-value>
</init-param>
</filter>
【讨论】:
以上是关于请提供地理服务器建议 - HTTP 状态 400 - 错误请求的主要内容,如果未能解决你的问题,请参考以下文章
地理位置 - 'https://www.googleapis.com/' 上的网络位置提供商:返回错误代码 400
http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码