Почему мой прокси nginx не работает , но мой прокси node.js работает?

Я пытаюсь настроить сервер nginx для обратного обращения данных прокси с двух разных серверов через ajax. Однако работает только один из запросов. Другой дает мне Нет Ошибка заголовка Access-Control-Allow-Origin .

Однако запуск того же внешнего интерфейса, который выполняет запросы ajax на сервере node.js, работает:

"use strict";
let express = require('express');
let request = require('request');

let PORT = process.env.PORT || 3000;
let app = express();

app.use(express.static(__dirname + "/public"));

app.get("/a", (req, res) => {
        let url = "http://external-website-a.com/rest.exe/etc?...";
        request(url).pipe(res);
});

app.get("/b", (req, res) => {
        let url = "http://external-website-b.com/webservice.svc/etc?...";
        request(url).pipe(res);
});

let server = app.listen(PORT, () => {
        console.log("Listening on port: " + PORT);
});

С node.js клиент получает оба json файлы, а "b" не работает на nginx. Вот моя конфигурация для сайтов / по умолчанию:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.html

        server_name _;

        location / {
                sendfile off; #http://stackoverflow.com/questions/37742950
                try_files $uri $uri/ /index.html;
        }

        location /a {
                proxy_pass http://external-website-a.com/rest.exe/etc?...;
        }

        location /b {
                proxy_pass http://external-website-b.com/webservice.svc/etc?...;
        }
}

Я пытался добавить всю информацию proxy_set_header , которую мог найти в Интернете .. но пока ничего не помогло .. Кроме того, когда я напрямую обращаюсь к « localhost: 8080 / a », мне показывается json (как и должно), но когда я получаю доступ к « localhost: 8080 / b », я вместо этого перенаправляюсь на " external-website-b.com/webservice.svc/etc? ... " даже при выключенном proxy_redirect; Почему? И означает ли это что-нибудь, связанное с проблемой?

Почему мой сервер node.js / express может обслуживать данные, но nginx не работает?

0
задан 24 September 2016 в 09:28
1 ответ

proxy_set_header Access-Control-allow-Origin "*". добавьте это в конфигурацию nginx (внутри всех директив местоположения)

0
ответ дан 24 November 2019 в 05:41

Теги

Похожие вопросы