如何根据请求中的 Origin 标头将 nginx Access-Control-Allow-Origin 正确设置到响应标头中?

2024-01-28

我正在寻找一个 nginx 配置设置来设置Access-Control-Allow-Origin到收到的值Origin.

看来*该方法不适用于 Chrome,并且多个 URL 不适用于 Firefox,因为 CORS 规范不允许这样做。

到目前为止,唯一的解决方案是设置Access-Control-Allow-Origin到源中收到的值(是的,可以实施一些验证)。

问题是如何在 nginx 中执行此操作,最好不安装额外的扩展。

set $allow_origin "https://example.com"
# instead I want to get the value from Origin request header
add_header 'Access-Control-Allow-Origin' $allow_origin;

Using if有时会破坏其他配置,例如try_files。您可能会遇到意想不到的 404。

使用地图代替 https://serverfault.com/a/674901/77854

map $http_origin $cors_header {
    default "";
    "~^https?://[^/]+\.example\.com(:[0-9]+)?$" "$http_origin";
}

server {
    ...
    location / {
        add_header Access-Control-Allow-Origin $cors_header;
        try_files $uri $uri/ /index.php;
    }
    ...
 }

如果是邪恶的 http://wiki.nginx.org/IfIsEvil

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据请求中的 Origin 标头将 nginx Access-Control-Allow-Origin 正确设置到响应标头中? 的相关文章

  • 设置 nginx 具有多个 IP

    我的 nginx 配置文件位于 etc nginx sites available 下 有两个上游说 upstream test1 server 1 1 1 1 50 server 1 1 1 2 50 upstream test2 ser
  • 由于 try_files $uri 别名错误,Nginx 别名中断

    我有一个版本化的 Symfony API 实例 我想按以下方式配置它 api com api v1 gt srv api v1 public index php api com api v2 gt srv api v2 public ind
  • 使用 Nginx 自定义错误网关页面

    是否可以在 Nginx 中提供自定义的 Bad Gateway 错误页面 类似于自定义 404 页面 为了显示您的自定义错误页面而不是一般的 错误网关 错误 必须满足三个部分 您必须创建一个名为 500 html 之类的 html 文件并将
  • Angular2 CORS 问题

    我是 angular2 的新手 公平地说 我对尝试修复的知识知之甚少 但是我遇到了一些有关跨站点请求的问题 试图从另一个应用程序访问服务 但无论我尝试什么 我都会遇到这个问题去做 XMLHttpRequest cannot load htt
  • 在 ContainerResponseFilter 中获取响应 (JAX-RS 2)

    我正在尝试移植这个 CORS 过滤器 https raw github com ysangkok jax rs ng todo master topack WEB INF classes our package ResponseCorsFi
  • GitLab 发布临时 IP 禁令 - 403 禁止

    我的 GitLab 实例设置有时会对我们自己的 IP 地址实施 IP 禁令 导致办公室中的所有用户在任何网页或 git 请求上都会收到 403 Forbidden 该禁令的实施是由于身份验证重复出现错误 这完全是一个单独的问题 但我想防止我
  • 本地 React 前端、Django REST Framework 后端(在 CORS 下访问 CSRF cookie 时出现问题)

    我正在创建一个带有 React 前端和 Django REST Framework 后端的 Web 应用程序 由于某些情况 我必须在本地开发 React 前端 而后端服务器位于远程位置 后端服务器要求我在登录后的每个 POST 中使用 CS
  • nginx设置问题

    我知道这不是一个直接的编程问题 但是 stackoverflow 上的人似乎能够回答任何问题 我有一台运行 Centos 5 2 64 位的服务器 非常强大的双核 2 服务器 具有 4GB 内存 它主要提供静态文件 Flash 和图片 当我
  • 使用 nginx 在云上部署 django 和 React

    我有一个 digitalocean 服务器 并且已经使用 Gunicorn 和 nginx 部署了 Django 后端服务器 如何在同一台服务器上部署 React 应用程序 您可以构建 React 应用程序并使用 Nginx 提供其静态文件
  • 使用 aws elastic beanstalk 将非 www 重定向到 www

    我正在使用 Elastic Beanstalk 并按照说明使用 Express Web 服务器部署我的应用程序 如下所示 http docs aws amazon com elasticbeanstalk latest dg create
  • Access-Control-Allow-Origin值跨站缓存

    我正在尝试编写一个 nginx 配置来处理 http 和 https 上的两个站点 只要客户端从不访问这两个站点 它似乎就可以工作 但如果它们这样做 就会出现缓存 跨站点问题 Allow cross origin location eot
  • Kubernetes - 一个 Ingress 中的多个配置

    我在同一个 Kubernetes 集群中运行不同的应用程序 我希望多个域能够访问我的 Kubernetes 集群 并根据域进行重定向 对于每个域 我想要不同的注释 配置 如果没有注释 我的入口部署如下 apiVersion networki
  • 无法从外部访问在 docker swarm 上运行的容器

    我正在 docker swarm 上运行我的容器 资产前端service 是我的前端应用程序 它在容器内运行 Nginx 并公开端口 80 现在如果我这样做 curl http 10 255 8 21 80 http 10 255 8 21
  • node.js 本身还是 nginx 前端来提供静态文件?

    是否有更快的基准或比较 将 nginx 放在节点前面并让它直接提供静态文件或仅使用节点并使用它提供静态文件 nginx 解决方案似乎对我来说更易于管理 有什么想法吗 我不得不不同意这里的答案 虽然 Node 可以做得很好 但如果配置正确 n
  • 如何使用 Nginx 在子文件夹/URL 前缀上托管 Flask 应用程序?

    我有一个 Flask 应用程序 我想将其托管在网站的子文件夹中 例如example com cn 我像这样配置我的 nginx location cn proxy pass http localhost 8000 所以如果我访问exampl
  • fetch get 请求返回空标头

    Headers was indeed sent via http However fetch returned empty headers 事实证明我需要设置Access Control Expose Headers包含我想公开的标题
  • WebSocket 连接失败:一个或多个保留位打开:reserved1 = 0、reserved2 = 1、reserved3 = 1

    我正在尝试使用以下命令在我的 Javascript React 应用程序中设置 WebSocketsSocket io https github com socketio socket io 当使用polling从 Socket io 客户
  • req.protocol 永远不会在 nginx 代理后面提供 https

    我正在尝试识别我的 Express 应用程序是否通过https协议 Using nginx处理认证和加密 在同一台机器上 并转发请求 req protocol评估为http即使 https 正在使用并且工作正常 我已经尝试了以下两种方法 单
  • 使用 nginx http auth 保护 Jenkins(回调 url 除外)

    我在我的服务器上安装了 jenkins 我想用 nginx http auth 来保护它 以便请求 http my domain com 8080 http ci my domain com 除一个位置外将受到保护 http ci my d
  • lua找不到模块插座

    我正在尝试使用 lua 从 nginx 访问 redis 值 当我在命令行上执行 lua 文件时 一切正常 我可以读取值并将值写入 redis 但是当我尝试通过访问写入 access by lua 指令的位置来从 nginx 执行相同的文件

随机推荐

  • Coverity有Rest API吗

    我想存储结果覆盖性 http www coverity com 到 InfluxDB 我想知道 Coverity 是否有 REST API 如果您只是尝试将数据转储到 InfluxDB 则可以从 REST API 卷曲数据并将生成的 jso
  • 批量将 PDF 转换为 XPS

    我正在寻找一种廉价的方法将 1300 个 PDF 文档批量转换为 XPS 文档 我知道我可以简单地以这种格式打印它们 但这需要很长时间 有没有办法在 C 中以编程方式执行此操作 根据您对廉价的定义 有以下几种选择 便宜 低于 1000 美元
  • gcc:如何正确使用 __attribute((__may_alias__)) 以避免“取消引用类型双关指针”警告

    我有一些代码使用类型双关来避免调用成员 对象 的构造函数和析构函数 除非 直到实际上需要使用该对象 它工作正常 但在 g 4 4 3 下 我收到这个可怕的编译器警告 jaf jeremy desktop g O3 Wall puns cpp
  • 汇编正确使用字/字节/字 ptr

    我正在编写一个用于汇编的小机器代码生成器 我有一个关于立即记忆指令的问题 让我们看一下这 3 个场景 add ebx 04 0x1 add ebx 04 0x4040 add ebx 04 0x401000 我所做的是通过立即常量 我检查它
  • Facebook Graph API:获取带有应用 ID 和密钥的访问令牌

    https developers facebook com docs facebook login access tokens https developers facebook com docs facebook login access
  • 无法解析 React Native 项目上的模块 redux

    自从新版本的react native 0 26 0 以来 当我初始化一个新项目时 我收到了这个错误 当我 npm 安装 redux 等其他模块时 我遇到了同样的错误 然后在运行时找不到这些依赖项 还有其他人遇到这样的问题或有任何想法吗 gt
  • 借助 TypeScript 将 Angular 2 与旧版浏览器一起使用?

    由于 Angular 2 团队使用 TypeScript 进行构建 因此是否可以假设他们可以编译可在旧浏览器上运行的 Angular 2 版本 Edit 2 Angular 团队似乎已决定支持一些非常绿浏览器 Per Brad Green
  • iPhone核心位置:计算总高程损失/增益

    我想在记录核心位置数据结束时计算总海拔损失和增益 我很难思考这个问题的数学原理 假设我从 600 英尺处开始 在跟踪过程中上下移动 我将如何计算海拔增益和损失 Ideas 如果您想分别跟踪增益和损失 请保留两个累积成员变量 netEleva
  • PreferredContentSize 不缩小

    我使用 UIPopoverController 弹出窗口 我使用 PreferredContentSize 来设置大小 然后 我使用 Push 一个更大尺寸的新视图控制器 当子视图弹出时 我喜欢将窗口恢复到原始大小 但好像不行 我已经把 s
  • ZetPDF - 有人知道这个产品的背景吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 问题 ZetPDF 只是伪装的 PDFSharp 吗 这个产品会继续存在吗 ZetPDF 是谁 我们目前正在使用 PDFSharp 从头开
  • 实体框架复杂类型与创建新实体

    我正在阅读有关实体框架 4 0 的内容 我想知道为什么我应该创建一个复杂类型而不是一个新的实体 表 以及它们之间的关系 完美的例子就是地址 使用复杂类型作为地址比处理新实体要容易得多 对于复杂类型 您不必处理主键 考虑访问一个地址 有多少种
  • 仅在 Firefox 上跨源请求和混合内容

    我正在开发一个需要 HTTPS 的项目 因此我使用自签名证书启动 HTTPS 服务器 我还有一个启用了 CORS 的 HTTP API 服务器 我能够在 Chrome 上获取 API 请求 这里是预检响应的标头 带有 HTTP 状态代码 2
  • 有哪些好的 Xcode 脚本可以加快开发速度?

    Xcode 允许您创建自动化脚本来执行重复任务 您编写了哪些脚本来加快开发速度 我为我创建了三个适用于 Cocoa 和 iPhone 的 JSON Framework http code google com p json framewor
  • Eclipse 中的 JFace 示例类似于 SWT 示例?

    是否有像 Eclipse 中的 SWT 示例那样的一体化 JFace 控件示例 搜索 谷歌搜索和在 stackoverflow com 上搜索 对我没有帮助 如果它是一个独立的应用程序或 eclipse 插件 那就太好了 谢谢 除了SWT
  • 如何获取数据库序列生成的新对象ID?

    我有一个带有序列和触发器的表 因此它在将其插入数据库时 会创建新的 id 在调用 SaveChanges 之前如何获取新的对象 id 我需要这个 id 作为新对象和其他对象之间的链接 我想在调用 SaveChanges 之前执行此操作 因为
  • 带有redis存储的socket.io

    我正在将 socket io 与 redis 存储一起使用 我从 socket io 网站获取了以下代码 var io require socket io server var redis require socket io redis i
  • 如何删除以短信形式发送的“[附件已删除]”字符串?

    我发现一个小程序可以通过 gmail 向我的手机发送短信 但是当我发送短信时 它会添加 附件已删除 有什么方法可以删除它吗 import smtplib from email mime text import MIMEText from e
  • 如何使用 phpMyAdmin 在 MySQL 中指定小数精度和小数位数

    SQL 使 MySQL 用户能够以十进制格式分配具有特定精度和小数位数的字段 如下所示 CREATE TABLE test table test column DECIMAL 6 4 NOT NULL 由于字段类型只有长度 值选项可用 我该
  • MySQL Workbench EER 图 - 如何更改存储引擎?

    我使用 MySQL Workbench 5 2 38 我做了一个能效比图 但在导出时 我对 InnoDB 作为定义的存储引擎感到惊讶 之后更改表不是一个选项 因为我没有 InnoDB 引擎 错误 1286 42000 未知的存储引擎 Inn
  • 如何根据请求中的 Origin 标头将 nginx Access-Control-Allow-Origin 正确设置到响应标头中?

    我正在寻找一个 nginx 配置设置来设置Access Control Allow Origin到收到的值Origin 看来 该方法不适用于 Chrome 并且多个 URL 不适用于 Firefox 因为 CORS 规范不允许这样做 到目前