проблема cors с nginx, aws и cloudflare - PullRequest
0 голосов
/ 29 августа 2018

Мой сайт размещен в Amazon AWS. Интерфейс моего приложения построен с использованием угловых интерфейсов, а бэкэнд - с помощью каркаса nodejs express. Управление доменом осуществляется с помощью Cloudflare с бесплатным SSL-сертификатом от Cloudflare. Сервер настроен с использованием nginx.

Все было хорошо, но вдруг мой сервер возвращает ответ 403. В результате мои API перестали работать.

Код моего сервера ngnixn:

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

        server_name api.shajao.com;
    client_max_body_size 500M;
        underscores_in_headers on;
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        proxy_pass http://shajao_server;

    proxy_pass_request_headers on;

    client_body_buffer_size    500M;
    client_max_body_size 500M;

        proxy_http_version 1.1;
    proxy_set_header Access-Control-Allow-Origin *;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

        add_header 'Access-Control-Allow-Origin' '*';
        }

}

Настройка моего экспресс-сервера:

var allowCrossDomain = function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With, Accept');

    // intercept OPTIONS method
    if ('OPTIONS' === req.method) {
        res.sendStatus(200);
    } else {
        next();
    }
};
app.use(allowCrossDomain);

URL моего сайта: www.shajao.com

1 Ответ

0 голосов
/ 04 сентября 2018

Что-то случилось с cloudflare, который создавал проблему cors. Удалил мой домен из cloudflare и управлял моим днс из godaddy и все начало работать без каких-либо изменений. Не уверен, что случилось со стороны облака. Было бы лучше, если бы кто-нибудь мог ответить на это

...