Skip to content

Instantly share code, notes, and snippets.

@ejaz-vintega
Forked from slavafomin/nginx.conf
Created May 23, 2022 14:26
Show Gist options
  • Save ejaz-vintega/fa74779c056de0b94745a3111771faf8 to your computer and use it in GitHub Desktop.
Save ejaz-vintega/fa74779c056de0b94745a3111771faf8 to your computer and use it in GitHub Desktop.
How to enable CORS in nginx with origin matching
server {
listen 80 default_server;
root /var/www;
location / {
set $cors '';
set $cors_allowed_methods 'OPTIONS, HEAD, GET';
if ($http_origin ~ '^https?://(www\.)?example.com$') {
set $cors 'origin_matched';
}
# Preflight requests
if ($request_method = OPTIONS) {
set $cors '${cors} & preflight';
}
if ($cors = 'origin_matched') {
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Methods $cors_allowed_methods;
}
if ($cors = 'origin_matched & preflight') {
add_header Access-Control-Allow-Origin $http_origin always;
add_header Access-Control-Allow-Methods $cors_allowed_methods;
add_header Content-Type text/plain;
add_header Content-Length 0;
return 204;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment