¿Cómo agregar encabezados CORS a varias ubicaciones en nginx?

¿Cómo agregar encabezados CORS a varias ubicaciones en nginx?

Pude agregar soporte CORS básico a mi servidor nginx usando el código proporcionado enenable-cors.org. Sin embargo, esta solución implica copiar y pegar ese código en cada bloque de ubicación, y tengo varias ubicaciones como las siguientes:

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

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

¿Hay alguna manera de crear una regla que incluya add_headerfuera de los locationbloques?

Editar para aclarar: He probado lo siguiente

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;
    }
    ...
}

Pero no funciona:

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

Respuesta1

Claro, puedes agregar add_headerdebajo del serverbloque, pero luego lo hará.siempreenviarse, que podría no ser lo que desea.

De lo contrario, puede crear un archivo con las directivas que desee y luego includedesde cada uno de locationlos lugares donde desee agregar los encabezados CORS.

información relacionada