Плохие шлюзы с большими загрузками POST и моей настройкой apache + лак + plone - PullRequest
3 голосов
/ 20 января 2012

Это довольно сложный сценарий, поэтому я был бы очень признателен за любой указатель в правильном направлении.

Итак, я настроил apache на сервере A для прокси HTTPS-трафика на сервере B, то есть на сайтах-лакеях за лаком и apache.

Я подключаюсь к A и могу просматривать сайт по https, все хорошо. Однако проблемы начинаются, когда я загружаю файлы через POST-формы plone. Я могу загружать небольшие файлы (~ 1 МБ), но когда я пытаюсь загрузить файл размером 50 МБ, я все время жду, пока файл будет загружен, и когда показание равно 100%, я получаю плохой шлюз (Прокси-сервер получил неверный ответ от вышестоящего сервера.)

Мне кажется, что между сообщениями A и B произошел какой-то тайм-аут, и вместо того, чтобы быть перенаправленным на правильный URL, я получаю плохой шлюз, не говоря уже о том, что файл не загружен.

В логе apache вижу

[error] proxy: pass request body failed

Как и предполагалось в других потоках, я экспериментировал со следующими значениями без удачи

force-proxy-request-1.0
proxy-nokeepalive
KeepAlive 
KeepAliveTimeout 
proxy-initial-not-pooled
Timeout 
ProxyTimeout 

оооочень .. есть предложения? Спасибо за миллион заранее!

Ответы [ 2 ]

0 голосов
/ 07 апреля 2014

Настройка Timeout и KeepAliveTimeout в файле виртуального хоста apache у меня сработала.

Пример:

Timeout 3600
KeepAliveTimeout 50
0 голосов
/ 30 апреля 2013

Проверяли ли вы конфигурацию лака? У лака есть свои собственные тайм-ауты, я знаком с send_timeout, который обычно прерывает загрузку, если они не заканчиваются в течение нескольких секунд (Varnish действительно не годится для больших загрузок, потому что вы заканчиваете делать глупые вещи, такие как настройка send_timeout = 7200 для заставить его работать).

Кроме того, установите first_byte_timeout на большее число для этого бэкэнда, потому что загрузка большого файла может задержать ответ plone достаточно, чтобы вызвать это.

...