我在 Windows Server 2022 上的 Tomcat 9.0.78 下运行 GeoServer 2.23.2。http://localhost:8080/geoserver/和https://localhost:8443/geoserver/URL 运行正常。但我找不到正确的设置https://subdomain.mydomain.com/geoserver/。当我尝试访问此网站时,它显示“ERR_CONNECTION_TIMED_OUT”
IIS 设置:在 IIS 10 中,通配符证书(例如
*.我的域名.com
添加到服务器证书中。在 HTTP 响应标头中,CORS 已启用
Access-Control-Allow-Origin "*"
我使用 IIS Aplication Request Routing 并启用了代理。在 URL Re-Write 中,Match Url 是
(geoserver/.*)
重写 URL 是
http://localhost:8080/{R:0}
指的是 Tomcat。
Tomcat Server.xml 设置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
.....
<Connector port="8443" protocol="HTTP/1.1"
maxThreads="150"
SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS"
clientAuth="false"
maxParameterCount="1000"
keystoreFile="${catalina.home}/conf/star_mydomain.jks" /* the same certificate in IIS */
keystorePass="password"
keystoreType="JKS"
URIEncoding="UTF-8"
/>
tomcat9\webapps\geoserver\WEB-INF\web.xml 设置:
<context-param>
<param-name>GEOSERVER_CSRF_WHITELIST</param-name>
<param-value>mydomain.com,*.mydomain.com,localhost:8080,localhost:8443</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>
****
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
最后在 GeoServer 全局配置中,当我将代理基 URL 添加为https://subdomain.mydomain.com/geoserver/并点击保存按钮,URL 重定向至https://subdomain.mydomain/geoserver/j_spring_security_check并且显示“ERR_CONNECTION_TIMED_OUT”。因此,我无法登录 GeoServer。
我错过了一些东西但看不到。
PS:服务器尚未连接网络,部署成功后即可连接。