Назад | Перейти на главную страницу

Как настроить nginx для включения заголовков в ответ?

У меня есть nginx, который отправляет запросы на сервер приложений browser <=> nginx <=> app_server.

По какой-то причине не все заголовки предоставлены app_server будет возвращен в браузер.

Т.е. заголовки вроде Access-Control-Allow-*** будет удален из ответа.

Как это исправить?

Моя текущая конфигурация местоположения:

location / {
    proxy_pass http://app_server:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Origin '';
    proxy_cache_bypass $http_upgrade;
    proxy_buffering off;
}

Хорошо, я нашел причину такого поведения. Добавляя

proxy_set_header Origin '';

Я практически удалил этот заголовок из проксированного запроса на app_server. Следовательно, app_server не возвращал заголовки CORS. Как только я изменил его на

proxy_set_header Origin '$http_origin';

все работало исправно.