请给地理服务器建议 - HTTP 状态 400 – 错误请求

Jak*_*ake 7 apache geoserver tomcat9

我真的希望有人能帮助我指明正确的方向。

\n

我在 Ubuntu 18.04 服务器上的 Tomcat 9 中部署了 Geoserver。

\n

在我将 SSL 添加到 Apache 虚拟主机之前,一切都工作得非常正常。我登录 Geoserver 没有问题,但是当我尝试更改任何内容(例如保存新设置或尝试将数据添加到 Geoserver)时,我收到此错误:

\n

HTTP 状态 400 \xe2\x80\x93 错误请求\n类型状态报告\n消息来源与请求不对应\n描述 由于某些被认为是客户端错误(例如,格式错误的请求),服务器无法或不会处理该请求语法、无效的请求消息帧或欺骗性的请求路由)。\nApache Tomcat/9.0.43

\n

这种情况只在我添加 SSL 后发生,如果我在 Apache 中删除 SSL 虚拟主机并以 HTTP 方式运行该站点,则不会收到该错误。

\n

有人能指出我正确的方向吗?

\n

谢谢

\n

Jak*_*ake 6

我使用此处的说明解决了这个问题:https://dev.to/iamtekson/using-nginx-to-put-geoserver-https-4204

  1. 在 GeoServer 管理站点的“设置”>“全局”>“代理基本 URL”下添加了我的域名:https: www.mydomain.com

  2. 检查“使用代理 URL 标头”

  3. 在位于此处的 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>
    
    Run Code Online (Sandbox Code Playgroud)