![nginx の複数の場所に CORS ヘッダーを追加するにはどうすればいいですか?](https://rvso.com/image/668773/nginx%20%E3%81%AE%E8%A4%87%E6%95%B0%E3%81%AE%E5%A0%B4%E6%89%80%E3%81%AB%20CORS%20%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私は、以下のコードを使用して、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
各場所にlocation
CORS ヘッダーを追加することができます。