Lastor
@Lastor
В чем сила, брат? В ньютонах.

Почему map не присваивает $origin ожидаемое значение?

Сервер отдаёт ошибку CORS. Не могу понять почему $origin всегда false.
config

map $http_origin $origin {

  # indicates all map values are hostnames and should be parsed as such
  hostnames;

  # default value
  default 'false';

  # all your domains
  https://example1.ru $http_origin;
  https://www.example1.ru $http_origin;
  https://example2.ru $http_origin;
  https://www.example2.ru $http_origin;
}

server {

        root /home/username/api.example.ru/public_html;

        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";

        index index.html index.php index.htm index.nginx-debian.html;

        server_name api.example.ru www.api.example.ru;

        charset utf-8;


        location / {
                try_files $uri $uri/ /index.php?$query_string;

        }

        location ~ \.php$ {

             if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' "$origin" always;
                add_header 'Access-Control-Allow-Methods' 'GET, POST, PATCH, PUT, DELETE, OPTIONS' always;
                add_header 'Access-Control-Allow-Headers' 'Content-Type, Accept, Authorization, Accesstoken' always;
                add_header 'Access-Control-Allow-Credentials' 'true' always;

                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 ~ '(GET|POST|PATCH|PUT|DELETE)') {
                 add_header Access-Control-Allow-Origin "$origin" always;
                 add_header Access-Control-Allow-Methods 'GET, POST, PATCH, PUT, DELETE, OPTIONS' always;
                 add_header Access-Control-Allow-Headers 'Content-Type, Accept, Authorization' always;
                 add_header Access-Control-Allow-Credentials true always;
             }
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php/php8.3-fpm-username.sock;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }

            location ~ /\.ht {
        deny all;
    }
}

  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Схема в мапе лишняя. Оставьте только FQDN.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы