解决docker部署的geoserver跨域问题

本文讲述了在低配置云服务器上部署Geoserver时遇到的跨域错误,通过进入容器修改web.xml配置,解决Access-Control-Allow-Origin头包含多个值的问题,只需注释掉多余配置并重启容器,确保正常访问。

解决docker部署的geoserver跨域问题

一、背景介绍

因为云服务器配置不高,Geoserver经常跑满内存导致服务器经常卡死,所以使用内网穿透将内网服务器上的geoserver可以通过外网地址访问

二、报错内容

前端在进行调试时,出现以下报错
在这里插入图片描述
具体为

The 'Access-Control-Allow-Origin' header contains multiple values'x, *', but only one is allowed

三、解决问题

1. 进入容器

sudo docker exec -it geoserver /bin/bash #geoserver为geoserver容器的名称,根据实际情况自行替换

在这里插入图片描述

2. 进入配置文件

vim /usr/local/tomcat/webapps/geoserver/WEB-INF/web.xml

3. 修改配置文件

按照图中将以下两个地方的跨域配置进行注释掉
在这里插入图片描述
在这里插入图片描述

按i进入编辑模式
注释完后 按ESC键 再输入 :wq 进行保存退出

4. 退出容器

exit

5. 重启容器

sudo docker restart geoserver

四、验证效果

在这里插入图片描述
能够正常访问 说明问题解决

五、结论

这个报错是由于多个服务重复配置了跨域,只要注释掉多余的跨域配置就行了

### 解决Docker部署Jenkins时的问题 在使用Docker部署Jenkins的过程中,如果遇到(CORS)问题,通常是因为Jenkins默认的安全设置阻止了来自不同源的请求。以下是几种常见的解决方案: #### 方法一:通过安装并配置`CORS Plugin` 可以通过安装`CORS Plugin`来解决问题。具体操作如下: 1. 打开Jenkins管理页面中的插件管理部分。 2. 在“可选插件”中搜索`CORS Plugin`,然后进行安装[^3]。 3. 安装完成后,在全局安全配置中启用CORS支持,并指定允许的名和方法。 #### 方法二:修改启动参数 另一种方式是在启动Jenkins容器时添加特定的命令行选项以禁用CSRF保护或调整其行为。可以尝试以下命令: ```bash docker run -p 8080:8080 --name jenkins \ -u root \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/usr/bin/docker \ -v jenkins_home:/var/jenkins_home \ -e JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"\"" \ jenkins/jenkins:lts ``` 上述命令通过设置`JAVA_OPTS`环境变量来移除Content Security Policy (CSP),从而缓解某些限制[^1]。 #### 方法三:利用反向代理处理CORS 还可以借助Nginx或其他HTTP服务器作为反向代理来屏蔽原始响应头中的不必要字段或者主动注入Access-Control-Allow-Origin等头部信息。下面是一个简单的Nginx配置例子: ```nginx server { listen 80; server_name localhost; location / { proxy_pass http://localhost:8080/; add_header Access-Control-Allow-Origin *; # 允许所有来源访问 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'Authorization'; if ($request_method = 'OPTIONS') { return 204; } } } ``` 以上三种方案各有优劣,请根据实际需求选择合适的方法实施。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值