Nginx Server Config Causing CORs Errors

Viewed 12

I have a Dotnet Core API I am hosting w/ NGINX. I had this working at one point but something must of changed because I'm getting CORs errors. the Dotnet app has no set settings for CORs and my NGINX site config looks like this.

    server {

    server_name myapi.com  www.myapi.com;

         set $cors "";

    if ($http_origin ~* (.*)) {
        set $cors "true";
    }


   location / {        

        proxy_pass http://localhost:52003;
    
    #proxy_http_version 1.1;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-Proto https;
        proxy_set_header  X-Forwarded-For $remote_addr;
        proxy_set_header  X-Forwarded-Host $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

    if ($cors = "true") {
        }
   

    if ($request_method = 'OPTIONS') {
        #
        # Om nom nom cookies
        #
        add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Origin' "$http_origin";

        #add_header 'Access-Control-Allow-Authorization' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE, HEAD';
        #
        # Custom headers and headers various browsers *should* be OK with but aren't
        #
        add_header 'Access-Control-Allow-Headers' 'Authorization,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';

        #
        # Tell client that this pre-flight info is valid for 20 days
        #
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain charset=UTF-8';
        add_header 'Content-Length' 0;
        return 204;
     }
     if ($request_method = 'POST') {    
            add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE, HEAD';
    add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Headers' 'Authorization,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';

     }
     if ($request_method = 'PUT') { 
            add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE, HEAD';
    add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Headers' 'Authorization,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';

     }
     if ($request_method = 'DELETE') {  
            add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE, HEAD';
    add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Headers' 'Authorization,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';

     }
     if ($request_method = 'GET') {

            add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE, HEAD';
    
    add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Headers' 'Authorization,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
     }

    }

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/royaletracker.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/royaletracker.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}




server {
if ($host = www.myapi.com) {
    return 301 https://$host$request_uri;
} # managed by Certbot


if ($host = myapi.com) {
    return 301 https://$host$request_uri;
} # managed by Certbot

    listen 80;
    listen [::]:80;

    server_name myapi.com  www.myapi.com;
    
return 404; # managed by Certbot
}

It seemed like it stopped working overnight so I'm pretty stumped. Any help would be greatly appreciated!

0 Answers
Related