Wie füge ich CORS-Header an mehreren Stellen in Nginx hinzu?

Wie füge ich CORS-Header an mehreren Stellen in Nginx hinzu?

Ich konnte meinem Nginx-Server mithilfe des in bereitgestellten Codes eine grundlegende CORS-Unterstützung hinzufügenenable-cors.org. Diese Lösung erfordert jedoch das Kopieren und Einfügen dieses Codes in jeden Standortblock, und ich habe mehrere Standorte wie die folgenden:

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

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

Gibt es eine Möglichkeit, eine Regel zu erstellen, die auch add_headerdie Umgebung der locationBlöcke einschließt?

Zur Verdeutlichung bearbeiten: Ich habe Folgendes versucht

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

Aber es funktioniert nicht:

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

Antwort1

Natürlich können Sie add_headerunter dem serverBlock hinzufügen, aber dann wird esstetsgesendet werden, was möglicherweise nicht das ist, was Sie möchten.

Andernfalls können Sie eine Datei mit den gewünschten Anweisungen erstellen und includediese dann locationdort einfügen, wo Sie die CORS-Header hinzufügen möchten.

verwandte Informationen