Что ж, вы уже получили один ответ - лучше, чем ничего, но, на мой взгляд, этот код можно использовать только в качестве начальной итерации.
Код ниже, автором которого я не являюсь (который был найден на GitHub), намного лучше справляется с CORS. И особенно лучше, если не используются подстановочные знаки. Еще есть места для полировки, но я этим пользуюсь.
установить $cors '';
# Расширьте список доменов, включенных в список XSS, добавив больше
if ($http_origin ~ '^http[s]*?://(foo\.bar|.+\.foo\.bar|fou\.baar|.+\.fou\.baar)') {
установить $cors T;
}
если ($ request_method = 'ВАРИАНТЫ') {
установить $cors "${cors}O";
}
если ($cors = 'Т') {
add_header 'Access-Control-Allow-Origin' "$http_origin" всегда;
add_header 'Access-Control-Allow-Credentials' 'true' всегда;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' всегда;
add_header 'Access-Control-Allow-Headers' 'Accept, Authorization, Cache-Control, Content-Type, DNT, If-Modified-Since, Keep-Alive, Origin, User-Agent, X-Requested-With' всегда;
add_header 'Access-Control-Allow-Headers' 'DNT, X-Mx-ReqToken, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type';
#add_header 'Access-Control-Expose-Headers' 'Авторизация' всегда;
}
если ($cors = 'О') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'текст/обычная кодировка = UTF-8';
add_header 'Длина контента' 0;
вернуть 204;
}
если ($cors = 'КОМУ') {
add_header 'Access-Control-Allow-Origin' "$http_origin" всегда;
add_header 'Access-Control-Allow-Credentials' 'true' всегда;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' всегда;
add_header 'Access-Control-Allow-Headers' 'Accept, Authorization, Cache-Control, Content-Type, DNT, If-Modified-Since, Keep-Alive, Origin, User-Agent, X-Requested-With' всегда;
add_header 'Access-Control-Allow-Headers' 'DNT, X-Mx-ReqToken, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'текст/обычная кодировка = UTF-8';
add_header 'Длина контента' 0;
вернуть 204;
}