2016-09-06 3 views
1

Я использую gulp-сервер для разработки локального интерфейса, приложение, к которому я подключаюсь, работает на другом сервере, как спереди, так и сзади.nginx обратный прокси-сервер, чтобы избежать ошибки cors с localhost

Сервер gulp работает на localhost: 1340. Апи находится в https://aaa.bbb.com/api

я получаю следующее сообщение об ошибке: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Так что я пытаюсь настроить обратный прокси-сервер с помощью Nginx, так что я запустит сервер Nginx на локальном хосте: 8001 и он действует как соединение между сервером gulp и api.

Вот настроенный из nginx.conf

server { # simple reverse-proxy 
    listen  8001; 
    server_name localhost; 
    # access_log logs/domain2.access.log main; 


    location/{ 
     proxy_pass  http://localhost:1340; 
     proxy_set_header Host $http_host; 
     add_header Access-Control-Allow-Origin *; 


     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; 

    } 
    location /api/ { 
     proxy_pass  https://aaa.bbb.com/api/; 
     add_header Access-Control-Allow-Origin *; 

     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 



     proxy_redirect off; 

    } 
    } 

Но что происходит, когда я указать на локальный хост: 8001, я все еще получают ошибки Корса, это просто передавая содержание глотка сервера. , когда я указываю на localhost: 8001/api/он передает содержимое внешнего сервера, с которым он развертывается.

Поведение, в котором я нуждаюсь, это мой локальный ui, указывающий на внешний сервер, так что я могу видеть изменения, которые я делаю локально в ui. Работа с хромом с отключенной функцией безопасности, но это означает, что я не могу проверить другие браузеры для изменений, которые я делаю.

Любая помощь/идеи будут высоко оценены.

ответ

1

У меня была такая же проблема и наткнулся на этот вопрос (без ответа), поэтому я просто подумал, почему бы просто не попробовать. И он работал непосредственно для меня. Нет настроек заголовка или чего-либо другого - только proxy_passes добавлены в конфигурацию nginx по умолчанию. Это то, что я сделал:

server { 
    listen  8001; 
    server_name localhost; 

    location/{ 
     proxy_pass http://127.0.0.1:1340; 
    } 

    location /api { 
     proxy_pass https://aaa.bbb.com/api; 
    } 
} 

Я подозреваю, что один или два из указанных вами заголовков вызывают проблему. Вам просто нужен прямой обратный прокси-сервер, чтобы браузер не подозревал, что за ним осталось несколько доменов.

Смежные вопросы