Como adicionar cabeçalhos CORS a vários locais no nginx?

Como adicionar cabeçalhos CORS a vários locais no nginx?

Consegui adicionar suporte CORS básico ao meu servidor nginx usando o código fornecido emenable-cors.org. Porém esta solução implica copiar e colar esse código em cada bloco de localização, e tenho vários locais como o seguinte:

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

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

Existe uma maneira de criar uma regra que inclua add_headerfora dos locationblocos?

Edite para esclarecer: Eu tentei o seguinte

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

Mas não 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

Responder1

Claro, você pode adicionar add_headerabaixo do serverbloco, mas então isso serásempreser enviado, o que pode não ser o que você deseja.

Caso contrário, você pode criar um arquivo com as diretivas desejadas e, em seguida, includea partir de cada locationum onde deseja adicionar os cabeçalhos CORS.

informação relacionada