Для простых кейсов Nginx отдаёт Access-Control-Allow-Origin и обрабатывает OPTIONS preflight; лучше отражать конкретный origin, а не * с credentials.
Разбор
add_header в error/preflight требует always при необходимости.
- Preflight: методы, headers,
Max-Age.
- Дубли CORS и в приложении, и в Nginx — источник багов.
- Для сложной политики CORS чаще оставляют в app/API gateway.
Итог
CORS на Nginx — для простых static/API; иначе держите в app.