nginx,上游,cors 失败

2024-03-23

无法理解为什么我的上游/CORS 配置失败。这阻碍了一些本地开发和测试。

我得到了一个请求的资源上不存在“Access-Control-Allow-Origin”标头当发出 API 请求时local.mysite.com:8081 to events.mysite.com.

这是我的服务器配置 /etc/nginx/sites-available/mysite

# the IP(s) on which your node server is running. I chose port 3000.
upstream mysite {
    server 127.0.0.1:3000;
}

# the nginx server instance
server {
    listen 0.0.0.0:80;
    server_name mysite events.mysite.com;
    access_log /var/log/nginx/mysite.log;

    # pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
    location / {
      proxy_set_header Access-Control-Allow-Origin *;
      # proxy_set_header 'Access-Control-Allow-Credentials' 'true';   # i've tried with and without this setting
      proxy_set_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin';
      proxy_set_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';

      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://app_mysite/;
      proxy_redirect off;
    }
 }

also,我尝试使用添加标题而不是 Access-Control-* 选项上的 proxy_set_header ,但那里也没有骰子。

我正在运行 Node.js 应用程序。我没有修改 Node 代码来处理 CORS...是我的 nginx 配置错误,还是可以,但我需要在 Node 中做其他事情?


CORS 标头必须提供给浏览器,而不是您的节点应用程序。所以你应该使用add_header指令,或者更好的是,在您的应用程序中设置这些标头。这应该足够了。如果你使用withCredentials取消注释适当的行。如果您使用使浏览器发送预检请求的东西,您应该正确处理“OPTIONS”请求。

location / {
  add_header Access-Control-Allow-Origin *;
  # add_header Access-Control-Allow-Credentials true;

  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-NginX-Proxy true;

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

nginx,上游,cors 失败 的相关文章

随机推荐

  • 不考虑锁的文件只读访问 (C#)

    如何打开 使用 C 已打开的文件 例如在 MS Word 中 我想如果我打开文件进行读取访问 例如 FileStream f new FileStream filename FileMode Open FileAccess ReadWrit
  • 如何知道分数中的循环小数?

    我已经知道分数何时是重复小数 这是函数 public bool IsRepeatingDecimal get if Numerator Denominator 0 return false var primes MathAlgorithms
  • Tradingview Pine-Script:如何仅绘制最后 x 个周期

    我只想绘制最后 x 个周期的指标 我怎么做 如果我可以进行时间操作 从plotStartDate中减去x period 也许我可以使用以下代码 period timeframe ismonthly or timeframe isweekly
  • SPLoginViewController 用于记住凭据

    在 CocoaLibSpotify 中 如何让 SPLogin ViewController 存储凭据 以便用户稍后可以通过 PSSession sharedSession attemptsLogin WithStoredCredentia
  • Laravel 5.5 使用自定义消息进行验证

    我正在我的 laravel 应用程序中处理密码更改表单 我想将验证器与自定义错误消息一起使用 我的代码如下所示 rules username gt required max 255 oldpassword gt required max 2
  • 与模块相比,使用具有静态函数的类有什么优势吗?

    我想要一些建议 我正在使用打字稿来创建对话框 一旦创建 它们就会自行处理 因为它们有自己的提交按钮并进行自己的检查 以下两种编码方式有什么优点或缺点吗 到目前为止 我唯一能看到的是 带有导出的模块方法允许我隐藏一个函数 并在不导出它的情况下
  • 如何更改 bookdown pdf 中的字体和磅值?

    我正在写一个文档 严格要求使用arial 12点 我在 bookdown 中修改了输出 yml 如下所示 site bookdown bookdown site fontsize 12pt fontfamily arial document
  • 水豚 fill_in 只适用于字段 id,为什么?

    在运行我的 rspec 测试时 我收到错误 Capybara ElementNotFound 无法找到字段 名字 我的rspec测试如下 describe with valid information do before do puts p
  • android:动态列表视图焦点每次从其他项目失去焦点后都会返回第一个项目

    我使用两个列表视图的 list A 和 list B 它们具有相同数量的列表项 如图 1 所示 其中 list B 是自定义数组适配器 其中每个项目作为列表 字符串 动态创建所需宽度的按钮 public class LarrayAdapte
  • 用python求解非方矩阵:如何使用numpy.linalg.lstsq()?

    要求的行为 我想用 python 求解非方矩阵 该矩阵具有两个线性相关向量 当前状态 我尝试使用numpy linalg solve 首先 但这仅适用于方阵 其他推荐使用的 StackOverflow 帖子numpy linalg lsts
  • 如何在iOS应用程序中切换皮肤(或设计主题)?

    我想让我的 iPhone 应用程序能够在皮肤 或设计主题 或外观和感觉 如木质 金属 大地色 男士 女孩等 之间切换 我将准备一些皮肤组 其中包含按钮和背景的图像 声音和文本颜色 并让用户通过应用程序设置决定他们想要使用哪组皮肤 实现这一点
  • Azure 广告组成员身份声明

    我已将 Azure AD 中应用程序清单中的 groupMembershipClaims 属性设置为 全部 这应该会导致在 id 令牌中返回用户的安全组成员身份 但是 它们不会被归还 已多次尝试重新登录 我做错了什么吗 您能否更具体地说明您
  • AppBarLayout 的嵌套 RecyclerView 问题

    我的 Activity 包含设计库 23 0 1 提供的 AppBarLayout 当我向上滚动时它会隐藏 我有一个 RecyclerView 每个子项也包含一个 RecyclerView 基本上是一个嵌套的 RecyclerView 我的
  • 如何使用 f"" 字符串而不是 .format() 打印二进制数?

    为了将一些数字打印为其二进制格式 我们只需使用 format 方法 像这样 Binary for i in range 5 1 print 0 gt 2 in binary is 0 gt 08b format i Output 0 in
  • 使用 hibernate-search 的自定义桥时出错

    我有两个实体 Indexed Entity Table name LK CONTACT TYPE public class ContactTypeEntity Id Column name ID DocumentId Integer id
  • 如何在 Windows 7 上卸载 Netbeans 6.9?

    我尝试卸载 Netbeans IDE 由于某种原因它拒绝卸载 当我从控制面板运行卸载程序时 我收到一条消息 安装程序锁定文件位于 c users user nbi nbilock 当我删除文件时 我收到一条消息 在注册表中找不到指定的目标组
  • 保持前 n 个元素按排序顺序的最佳数据结构是什么?

    我正在寻找一种保持顶部的数据结构n元素 类似于这个问题 https stackoverflow com questions 564112 data structure that always keeps n best elements 但增
  • 中值滤波器超高效实现

    我正在寻找快速 高效中值滤波器的 Ansi C 实现 有什么指点吗 到目前为止 我已经找到了下列的 http www eetindia co in STATIC PDF 200011 EEIOL 2000NOV03 EMS EDA TA p
  • 追加和插入都在那里有什么原因吗?

    我肯定不是我想成为的 Python 大师 我主要在业余时间学习 实验 很可能我会为有经验的用户提出一个小问题 但是 我真的很想去理解 这是一个对我帮助很大的地方 现在 在适当的前提之后 Python 文档说 4 6 3 可变序列类型 s a
  • nginx,上游,cors 失败

    无法理解为什么我的上游 CORS 配置失败 这阻碍了一些本地开发和测试 我得到了一个请求的资源上不存在 Access Control Allow Origin 标头当发出 API 请求时local mysite com 8081 to ev