переменные заголовка пропадают в производстве - PullRequest
4 голосов
/ 09 июня 2011

Я использую Rails 3.1 с PhusionPassenger и NGINX сзади. Я отправляю запросы через простой HttpClient (GrahpicalHttpClient для OS X). Мой код ожидает токен и идентификатор в заголовке для проверки подлинности звонящего. В режиме разработки это не проблема, но как только я перенесу его в производство, переменные заголовка пропадут. Ничего не отображается.

Вот код:

@caller = Person.check_authentication_token(request.headers['person_id'], request.headers['authentication_token'])

Метод check_authentication_token возвращает nil, если любая из переменных равна nil. Как я уже сказал, это отлично работает в разработке, но request.headers ['person_id'] и request.headers ['authentication_token'] оба равны нулю в производстве. Кто-нибудь еще видел эту проблему раньше?

1 Ответ

13 голосов
/ 28 июня 2011

Nginx по умолчанию считает недопустимые подчеркивания в заголовках запроса и впоследствии удаляет их, см. http://wiki.nginx.org/HttpCoreModule#underscores_in_headers, как это исправить.

...