nginx передает обратно свой заголовок

У меня есть следующий пример

           location / {
                    proxy_read_timeout 2000;
                    proxy_next_upstream error;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $http_host;
                    proxy_pass_header X_CUSTOM_HEADER;
                    proxy_redirect off;
                    proxy_max_temp_file_size 0;
                    proxy_pass https://prod;
                    break;
            }

Теперь, когда я использую следующую линию скручивания

curl --head -H "X_CUSTOM_HEADER: foo" http://domain.com/api/test

Теперь это не работает.. apache/php на серверной части не видит заголовок. Если я обхожу nginx, это работает

curl --head -H "X_CUSTOM_HEADER: foo" http://web1.domain.com/api/test

3 ответа

Решение

Вы должны использовать underscores_in_headers on directive which is off by default.

Вы должны использовать proxy_set_header для всех заголовков, которые вы хотите перенаправить на внутренние серверы. Так что вместо proxy_pass_header ... линия:

proxy_set_header X_CUSTOM_HEADER $http_x_custom_header;

Вышеупомянутое не работает для меня, поэтому я использовал proxy_pass_header, Смотрите Nginx Wiki о proxy_pass_header здесь.

Если ваш пользовательский заголовок device_id добавлять proxy_pass_header device_id; на ваш прокси-блок.

Если вы используете пользовательские заголовки с подчеркиванием (как я), убедитесь, что у вас есть underscores_in_headers on в вашем Nginx Config.

По умолчанию nginx пересылает все (proxy_pass_request_headers on;) заголовки на внутренний сервер. Но если ваш заголовок запроса (может быть настраиваемым заголовком) включает подчеркивание ( _) в имени заголовка, тогда nginx блокирует эти заголовки.

Ex: authenticate_type, cdn_enable.

Чтобы Nginx мог передавать весь или настраиваемый запрошенный заголовок в бэкэнд, включите параметр подчеркивания.

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