Как добавить заголовки CORS в несколько мест в nginx?

Как добавить заголовки CORS в несколько мест в nginx?

Мне удалось добавить базовую поддержку CORS на мой сервер nginx, используя код, предоставленный вenable-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.

Связанный контент