Проблема при публикации данных из нескольких частей формы с использованием Apache с mod_proxy для экземпляра mongrel

Я пытаюсь максимально точно смоделировать производственную среду моего сайта на локальном компьютере. Это сайт rails, который использует Apache w/ mod_proxy для пересылки запросов в кластер mongrel. На моем компьютере Mac OSX Leopard у меня установлена ​​установка apache по умолчанию, и я настроил vhost для использования mod_proxy для пересылки запросов локальному работающему экземпляру mongrel на порт 3000.

<Proxy balancer://mongrel_cluster-development>
BalancerMember http://127.0.0.1:3000
</Proxy>

По большей части это работает нормально. Я могу просмотреть свой сайт разработки, используя ServerName настроенного мною vhost, и могу подтвердить, что запросы правильно перенаправляются в экземпляр mongrel. Однако на сайте есть страница, которая имеет многочастную форму, которая используется для загрузки изображения на сервер. Когда я отправляю эту форму, происходит задержка около 5 минут, и браузер в конечном итоге возвращает

Bad Request
Your browser sent a request that this server could not understand.

В журнале ошибок для моего vhost:

[Tue Sep 22 09:47:57 2009] [error] (70007)The timeout specified has expired: proxy: prefetch request body failed to 127.0.0.1:3000 (127.0.0.1) from ::1 ()

Эта же форма отлично работает, если я перехожу непосредственно к экземпляру mongrel ( http://127.0.0.1:3000/). У кого-нибудь есть идеи, в чем может быть проблема и как ее исправить? Если есть какая-либо важная информация, которую я забыл добавить, оставьте комментарий, и я могу добавить к этому вопросу.

Примечание. После дальнейшего изучения это проблема, характерная для Safari. Форма отлично работает в Firefox.

1 ответ

Я думаю, что эта проблема вызвана ограничением длины заголовка cookie.

Ограничение заголовка файла cookie для RFC 2109 ниже:

  • не менее 300 печенья
  • не менее 4096 байт на файл cookie
  • не менее 20 файлов cookie для каждого уникального хоста или доменного имени

Когда Safari через некоторое время отправляет большой заголовок cookie, Apache не может его проанализировать. Возможно, вам придется проверить заголовок сеанса с помощью tcpmon (или тому подобное).

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