![Как добавить заголовки CORS в несколько мест в nginx?](https://rvso.com/image/668773/%D0%9A%D0%B0%D0%BA%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B8%20CORS%20%D0%B2%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%BC%D0%B5%D1%81%D1%82%20%D0%B2%20nginx%3F.png)
Мне удалось добавить базовую поддержку 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.