nginx の複数の場所に CORS ヘッダーを追加するにはどうすればいいですか?

nginx の複数の場所に CORS ヘッダーを追加するにはどうすればいいですか?

私は、以下のコードを使用して、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各場所にlocationCORS ヘッダーを追加することができます。

関連情報