如何阻止AWS ElasticBeanstalk上的Nginx自动添加X-Frame-Options头
解决AWS Elastic Beanstalk(Amazon Linux 2)Nginx自动添加X-Frame-Options头的问题
针对你遇到的Nginx自动注入X-Frame-Options: sameorigin导致Widget无法嵌入第三方网站的问题,可以通过Elastic Beanstalk的自定义Nginx配置彻底移除这个默认头,步骤如下:
- 在你的Flask项目根目录创建
.ebextensions文件夹 - 在该文件夹内新建配置文件(比如
01-nginx-frame-options.config),写入以下内容:
files: "/etc/nginx/conf.d/00_remove_x_frame_options.conf": mode: "000644" owner: root group: root content: | # 隐藏Nginx自动添加的X-Frame-Options头 proxy_hide_header X-Frame-Options; # 若需要允许所有网站嵌入Widget,可添加下面一行(不需要则删除) # add_header X-Frame-Options "ALLOWALL" always;
- 将包含
.ebextensions文件夹的项目重新打包,上传到Elastic Beanstalk部署
原理说明
proxy_hide_header X-Frame-Options;会强制Nginx不向客户端发送这个头,无论默认配置或后端服务是否添加了该头,从根源解决重复头的问题- 如果你需要明确允许第三方嵌入,添加
add_header X-Frame-Options "ALLOWALL" always;即可,此时客户端只会收到这一个正确的头
部署完成后,用curl -I https://你的域名/Widget路径验证响应头,确认X-Frame-Options已被移除或设置为你需要的值。
内容的提问来源于stack exchange,提问作者mimic
相关产品推荐
相关产品推荐

