[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема открытия страниц при загрузке файлов
Aragorn
Добрый день!
Обнаружил проблему в работе моего сервера (Apache2+PHP5 под виндой):
когда пользователь начинает скачивать какой-либо довольно большой файл, то он не может
открыть ни одной страницы сайта (даже если открывает новое окно explorer-а) до
тех пор, пока данный файл не скачается.
Я подозреваю, что дело тут в настройказ httpd.conf, хотя на мой взгляд, все верно.

Подскажите, пожалуйста, что я не так прописал.
Заранее спасибо!

PHP
  1. # Timeout: Время ожидания в секундах, прежде чем сервер примет или
  2. # отправит сообщение о тайм-ауте.
  3. #
  4. Timeout 300
  5.  
  6. #
  7. # KeepAlive: Признак, позволено или нет устанавливать долговременные
  8. # соединения (persistent connections) (т.е. когда обрабатывается более
  9. # одного запроса на соединение). Для запрета укажите значение Off.
  10. #
  11. KeepAlive On
  12.  
  13. #
  14. # MaxKeepAliveRequests: Максимальное число запросов, допустимое в одном
  15. # долговременном соединении. Для снятия ограничений обнулите параметр,
  16. # но для максимального быстродействия мы рекомендуем указать заведомо
  17. # большое конкретное значение.
  18. #
  19. MaxKeepAliveRequests 0
  20.  
  21. #
  22. # KeepAliveTimeout: Время ожидания в секундах следующего запроса от
  23. # одного и того же клиента в одном подключении.
  24. #
  25. KeepAliveTimeout 15
  26.  
  27. #
  28. # Для обработки запросов Apache для Win32 всегда порождает один дочерний
  29. # процесс. Если он по каким-либо причинам будет преждевременно завершен,
  30. # другой дочерний процесс создается автоматически. Поступающие запросы
  31. # внутри такого дочернего процесса обрабатываются отдельными потоками.
  32. # Следующие две директивы управляют поведением таких потоков и процессов.
  33.  
  34. #
  35. # MaxRequestsPerChild: Число запросов, которое позволено обрабатывать
  36. # дочернему процессу до переполнения. При переполнении дочерний процесс
  37. # будет принудительно завершен, чтобы избежать проблем при длительной
  38. # непрерывной работе, если Apache (или используемые им библиотеки),
  39. # допускают утечку памяти или других ресурсов. На большинстве систем
  40. # это не требуется, но некоторые (например, Solaris) имеют заметные
  41. # утечки в библиотеках. Если нет других рекомендаций, для Win32
  42. # установите значение 0 (без ограничений).
  43. #
  44. MaxRequestsPerChild 0
  45.  
  46. #
  47. # ВНИМАНИЕ: значение MaxRequestsPerChild, отличное от 1,
  48. # иногда приводит к аварийному завершению mod_php, начиная с версии
  49. # PHP 4.3.0-pre2 (можно протестировать по адресу
  50. # http://localhost/phpmyadmin/, нажимая несколько раз Reload).
  51. #
  52.  
  53. #
  54. # ThreadsPerChild: Число одновременно выполняющихся потоков (т.е.
  55. # запросов), которое допускает сервер. Установите это значение в
  56. # соответствии с требуемой загрузкой сервера (больше активных запросов
  57. # одновременно означает, что они обслуживаются медленнее) и объемом
  58. # системных ресурсов, который вы можете предоставить серверу.
  59. #
  60. ThreadsPerChild 300




Спустя 21 минута, 25 секунд (27.03.2007 - 11:12) vasa_c написал(а):
А страницы других сайтов он при этом открывать может?

Спустя 7 минут, 51 секунда (27.03.2007 - 11:20) Aragorn написал(а):
Цитата(vasa_c @ 27.3.2007, 11:12) [snapback]16669[/snapback]

А страницы других сайтов он при этом открывать может?


Да.

Спустя 2 часа, 11 минут, 34 секунды (27.03.2007 - 13:32) welder написал(а):
У тебя на какой основе построена сетка ? И какая пропускная возможность твоего канала. И если уж на то пошло что пользователи пользуются сервером, найди ты старенький(относительно) комп заряди на него бздю или линух и будет тебе сто лет счастье :)

Спустя 23 минуты, 35 секунд (27.03.2007 - 13:55) Aragorn написал(а):
Цитата(welder @ 27.3.2007, 13:32) [snapback]16678[/snapback]

найди ты старенький(относительно) комп заряди на него бздю или линух и будет тебе сто лет счастье smile.gif

За совет спасибо, однако дело у меня похоже не в сети,
так как у меня есть локальная копия сервака - а на ней та же самая беда.

P.S. Пропускная способность сети - 18 мегабит (VDSL)

Спустя 4 дня, 20 часов, 44 минуты, 18 секунд (2.04.2007 - 10:40) Aragorn написал(а):
Заметил такую вещь:
если просто указать ссылку на файл, к примеру <a href="somefile.rar">скачать</a>, то во время скачивания
пользователь без проблем открывает страницы.

Я же использую предварительно скрипт, который проверяет права доступа на скачивание файла и увеличивает счетчик (общее число загрузок).
Вот фрагмент формирования meta-данных:


if (preg_match("/MSIE/i",$_SERVER['HTTP_USER_AGENT']) && !preg_match("/Opera/i",$_SERVER['HTTP_USER_AGENT'])) {
header('Content-Disposition: inline; filename="'.$file_name.'"');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
} else {
header('Content-Disposition: attachment; filename="'.$file_name.'"');
header('Expires: 0');
header('Pragma: no-cache');
}
header("Content-Length: ".filesize($full_path));
header("Content-Type: ".$content_type);
readfile($full_path);
exit;

Может здесь что-то не так.
Вообще, кто какие скрипты использует для скачки? Поделитесь опытом плиз.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.