Прокси-сервер nginx не работает с поддоменом - PullRequest
0 голосов
/ 06 декабря 2018

у меня есть два домена

alpha.mydomain.com и api-alpha.mydomain.com

Я пытаюсь использовать nginxкак прокси

я получаю ошибку

Доступ к XMLHttpRequest по адресу https://api -alpha.mydomain.com / dup-check 'от источника'https://alpha.mydomain.com' заблокировано политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.

я бы подумал, исходя из моих настроек, запрос не должен использовать api-alpha.mydomain.com , но 127.0.0.1 (и не получать ошибку CORS)

ПРИМЕЧАНИЕ :: Я использую облачный фреймворк https, поэтому ошибки консоли равны https, поскольку cloudflare - это SSL и общается с портом 80 на моем сервере nginx

, это часть моей конфигурации nginx

   server {
        listen        80;
        server_name   alpha.mydomain.com ;

        access_log   /var/log/nginx.access_log  main;

        root /home/mydomain/react-front/dist;

        location / {
            try_files $uri $uri/ /index.html;
        }

    }
   server {
        listen        80;
        server_name   api-alpha.mydomain.com ;

        access_log   /var/log/nginx-api-alpha-access.log  main;

        location /{
                proxy_pass         http://127.0.0.1:4001/;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-NginX-Proxy true;
                proxy_ssl_session_reuse off;
                proxy_set_header Host $http_host;
                proxy_redirect off;
        }

    }

Это запись из nginx-api-alpha-access.log

"ОПЦИИ / Дуп-проверка HTTP / 1.1" 502 750 "-" "МозиIla / 5,0 (Macintosh;Intel Mac OS X 10_14_1) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 70.0.3538.110 Safari / 537.36 "" - "

Это запись из / var / log / nginx / error.log

[ошибка] 1280 # 1280: * 12 connect () не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиент: 172.xx.xxx.xxx, сервер: api-mydomain.trigfig.com, запрос: «OPTIONS / dup-check HTTP / 1.1», upstream: «http://127.0.0.1:4001/dup-check", host:« api-alpha.mydomain.com »

Спасибо, не уверенчто мне не хватает в моей конфигурации

1 Ответ

0 голосов
/ 07 декабря 2018

попробуйте изменить на

server {
        listen        80;
        server_name   alpha.mydomain.com ;

        access_log   /var/log/nginx.access_log  main;

        root /home/mydomain/react-front/dist;

        location / {
            try_files $uri $uri/ /index.html;
        }

    }
   server {
        listen        80;
        server_name   api-alpha.mydomain.com ;

        access_log   /var/log/nginx-api-alpha-access.log  main;

        location /{

            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
                add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain; charset=utf-8';
                add_header 'Content-Length' 0;
                return 204;
             }

             add_header 'Access-Control-Allow-Origin' '*';
             add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
             add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';
             add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range,Authorization';

                proxy_pass         http://127.0.0.1:4001/;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-NginX-Proxy true;
                proxy_ssl_session_reuse off;
                proxy_set_header Host $http_host;
                proxy_redirect off;
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...