You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx Unit层面配置CORS 实现传统Nginx的跨域处理逻辑

Nginx Unit 实现对应CORS逻辑的配置方法

你原来在传统Nginx中写的CORS预检请求处理逻辑,可以直接在Nginx Unit的路由规则中实现,配置完全对齐原有逻辑,具体方案如下:

核心配置思路

Nginx Unit不需要写if判断,直接通过路由的method匹配规则筛选OPTIONS预检请求,然后配置对应响应头、返回204状态码即可,普通业务请求也可以按需追加CORS响应头。

完整配置示例

{
  "listeners": {
    "*:80": {
      "pass": "routes"
    }
  },
  "routes": [
    // 处理CORS预检OPTIONS请求
    {
      "match": {
        "method": "OPTIONS"
      },
      "action": {
        "return": 204,
        "headers": {
          "Access-Control-Allow-Origin": "*",
          "Access-Control-Allow-Methods": "GET, POST, PUT, OPTIONS, DELETE, PATCH",
          "Access-Control-Allow-Headers": "Authorization,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range",
          "Access-Control-Expose-Headers": "Gc-Export-Errors"
        }
      }
    },
    // 普通业务请求路由,按需添加CORS头
    {
      "action": {
        "pass": "applications/你的业务应用名称",
        "headers": {
          "Access-Control-Allow-Origin": "*",
          "Access-Control-Expose-Headers": "Gc-Export-Errors"
        }
      }
    }
  ],
  "applications": {
    "你的业务应用名称": {
      // 此处保留你原有业务应用的配置即可,无需改动
    }
  }
}

配置生效方式

将修改后的配置保存为json文件,调用Unit控制API更新配置即可,参考命令:

curl -X PUT -d @./unit-config.json --unix-socket /run/control.unit.sock http://localhost/config/

注意事项

  • 如果业务要求限制跨域来源,将Access-Control-Allow-Origin的*替换为实际允许的域名即可
  • 普通业务请求如果不需要额外追加CORS头,删除对应action中的headers配置即可
  • 如果需要针对特定路径做CORS配置,可在match段添加uri匹配规则做精细化控制

内容的提问来源于stack exchange,提问作者Grisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:06:03