如何将 CORS 标头添加到 nginx 中的多个位置?

如何将 CORS 标头添加到 nginx 中的多个位置?

我已经能够使用提供的代码向我的 nginx 服务器添加基本的 CORS 支持启用 cors.org但是,此解决方案意味着要将该代码复制并粘贴到每个位置块中,并且我有几个位置如下:

location /game1 {
    alias   /development/games/game1/output;
    index  index.html;
}

location /game2 {
    alias   /development/games/game2/output;
    index  index.html;
}

有没有办法创建包含块add_header外内容的规则location

编辑以澄清:我尝试过以下方法

server {
    listen       80;
    server_name  localhost;

    charset UTF-8;

    #access_log  logs/host.access.log  main;

    if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' '*';
        ...
    }
    location /game1 {
        alias /development/games/game1/output;
    }
    ...
}

但它不起作用:

2015/10/14 19:00:01 [emerg] 3464#7384: "add_header" directive is not allowed
here in C:\development\servers\nginx-1.7.9/conf/nginx.conf:43

答案1

当然,你可以在块add_header下添加server,但这样它就会总是被发送,这可能不是您想要的。

否则,您可以创建一个包含所需指令的文件,然后include从每个location想要添加 CORS 标头的地方创建一个文件。

相关内容