У меня есть следующая настройка и настроена для отправки всех запросов / api на другой сервер:
location /api {
proxy_pass https://myapp.herokuapp.com;
rewrite ^/api/(.*) /$1 break;
}
Мое приложение отправляет заголовок (USER_CUSTOMER) при непосредственном общении с myapp.herokuapp.com из приложения, которое оно работает, но при запросе через прокси-сервер значение отображается NULL на сервере API.
Следующее работает в NGINX, но мне нужно, чтобы приложение могло устанавливать значение USER_CUSTOMER.
location /api {
proxy_pass https://app.herokuapp.com;
proxy_set_header USER_CUSTOMER ABC;
rewrite ^/api/(.*) /$1 break;
}
У меня могут быть дополнительные заголовки для отправки в будущем, поэтому я надеюсь, что есть флаг для передачи всех заголовков с прокси на сервер API.
Ubuntu
nginx/1.1.19
Атрибут заголовка USER_CUSTOMER имеет недопустимый синтаксис. Подчеркивания недопустимы в атрибутах заголовка.
Есть обходной путь, но лучшее решение - переписать атрибут на допустимый синтаксис.
Обходной путь - установить следующее, где вы указываете имя сервера в конфигурации:
underscores_in_headers on;
Я думаю ты ищешь proxy_pass_request_headers
вариант. Включите:
location /api {
proxy_pass_request_headers on;
proxy_pass https://app.herokuapp.com;
proxy_set_header USER_CUSTOMER ABC;
rewrite ^/api/(.*) /$1 break;
}