Простой обратный прокси nginx, кажется, лишает некоторые заголовки

Я новичок в nginx. У меня на 8080 есть простой веб-сервер, на который я хочу передать весь трафик в этой довольно небольшой среде. Кажется, мой прокси работает, за исключением того, что пользовательский заголовок отсутствует, когда он попадает на мой вышестоящий сервер. Блок сервера находится ниже. Что мне нужно добавить к этому, чтобы сохранить мой собственный заголовок? В этом случае пользовательский заголовок был установлен в angularjs, но я не думаю, что это имеет какое-либо отношение к нему, так как он работает нормально, переходя непосредственно к 8080 на сервере. ($httpProvider.defaults.headers.common['GH_client'] = client_id();)

server {
server_name localhost;

location / {
        proxy_pass      http://localhost:8080;
        proxy_redirect  off;
    proxy_pass_header X-CSRF-TOKEN;
        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-NginX-Proxy true;
}}

Спасибо за любую помощь.

1 ответ

Решение

Ваш заголовок содержит подчеркивание (_). По умолчанию заголовки угроз nginx подчеркиваются как недействительные и отбрасывают их.

Вы должны включить underscores_in_headers директивы.

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

Другие вопросы по тегам