LINUX.ORG.RU

Проблемка с 502-ой ошибкой


0

0

Есть довольно посещаемый форум на mod_perl+mysql. Используется очень старый, но надежный движок wwwthreads, частично дописанный и вручную заштопанный. С недавнего времени начались проблемы с хостингом, на больших темах (где кол-во сообщений болше 20) при просмотре в режиме, когда на странице показываются все сообщения в теме сразу возникает ошибка 502 Bad Gateway. Сначала у провайдера был заказан персональный mysql-сервер, затем сам сайт переведен на новую платформу, где стало работать все заметно быстрее. Но проблема сохраняется. Было выяснено, что причина этой ошибки - простановка куки для прочитанных сообщений. Как отписался провайдер: "Проблема заключается в том, что Ваш форум генерит чрезмерно большие куки. Стандартный размер буфера, который необходим для передачи заголовков установлен у сервера Apache - 8 кБайт. У нас он увеличен до 16 кБайт. Больше мы сделать не можем."
Было предложено или переписать скрипт, или отказаться от куки. Но как не ковырялся, вроде бы в скрипте все грамотно:
# if( ($mode eq "flat") || ($wwwthreads::config{'postlist'} eq "flat") ){
# for (my $i = 0; $i< $checkreplies; $i++){
# my ($Marknumber) = $sth -> fetchrow_array;
# my $check = ",$Marknumber,";
# if( (!($read =~/$check/)) && ($posted > $unread) ) {
# $notread{$Marknumber} = "true";
# $read = $read.",$Marknumber,";
# wwwthreads::set_cookie($bname,"$read",0);
# }
# }
# }

В режиме показа одного сообщения куки проставляется точно так же, но без цикла. И ошибки не появляются. Смущает, что даже при помещении сообщения в тему иногда возникает та же ошибка. А там проставляется только одному сообщений статус прочитано.
Может провайдер немного лукавит и из-за недостатка ресурсов сваливает вину на скрипты ?


Решилось, перестановкой wwwthreads::set_cookie($bname,"$read",0); перед последней скобкой. А то действительно, получается сколько сообщений в теме, столько раз и куки ставится.

Yakuza
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.