Простой обратный прокси 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
будет полностью действительным и прокси на ваш бэкэнд-сервер.