Почему один виртуальный хост apache2 работает медленно, а другой нет?

Я использую apache2 2.2.14 в Ubuntu 10.04. У меня работает два виртуальных сервера, оба используют практически один и тот же скрипт conf на доступных сайтах. Одна из страниц (robertsmetrology.krazycraig.com) отображает очень быстро (1 секунда F5 на index.html), без проблем. Второе (robertsmetrology2.krazycraig.com) рендеринг занимает вечность (18 секунд F5 на index.html). В отличие от кода, сайт с быстрой загрузкой, разрабатываемый в Frontpage, имеет множество сценариев для запуска. Второе, нет, только HTML5 и CSS3. Я использую zoneedit в качестве DNS-сервера для обоих сайтов, и записи Zone в точности совпадают. Я просмотрел журналы доступа и ошибок, а также сообщения, вплоть до изменения переменной apache2 LogLevel для отладки виртуальных серверов. Я выполнил проверку W3C, и единственные проблемы с медленной загрузкой сайта - недопустимые метатеги и & amp; (вместо & amp; amp;) в свойстве href тега привязки (например, href = "http://whwhat.com?a=1&b=2"). И после исправления, скорость отображения страницы не изменилась. На обеих страницах используются одни и те же изображения и текст, единственное реальное отличие заключается в медленной визуализации страницы в HTML5, где используются теги, такие как article, header и footer, а на других везде используется форматирование div и таблицы.

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

Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ: Итак, я подумал, что, возможно, в файле есть что-то, что вызывает медленный рендеринг. Чтобы проверить это, я заменил свой index.html на index.html, который выглядит следующим образом ...

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    test
  </body>
</html>

Тем не менее, рендеринг занимает более 3 секунд.

2
задан 1 June 2012 в 23:27

2 ответа

В Chromium или Chrome вы можете перейти в Инструменты разработчика и выбрать опцию «Сеть», чтобы узнать, сколько времени занимает загрузка каждого ресурса. Обычно, когда страница загружается медленно, это происходит потому, что браузер пытается получить доступ к тому, что либо не найдено на сервере, либо оно обращается к контенту на другом сервере.

0
ответ дан 1 June 2012 в 23:27

Я столкнулся с проблемой, когда apache2 начнет ставить запросы в очередь после достижения максимального числа одновременных соединений. Проблема возникла только для одного виртуального хоста, у которого было много одновременных подключений.

Чтобы узнать, достигли ли вы этого предела, сначала выясните, какой MPM вы используете, выполнив следующую команду:

apachectl -V

Проверьте, какие настройки доступны для вашего MPM и какими они были. установите на вашем сервере. Это может быть в httpd.conf или аналогичном файле в зависимости от ваших настроек. Если для вашего MPM ничего не настроено, вы будете использовать значения по умолчанию.

Далее, проверьте документацию Apache для MPM, который вы используете. Например, если вы запускаете рабочий MPM на Apache 2.2, посетите https://httpd.apache.org/docs/2.2/mod/worker.html . Прочитайте настройки и посмотрите, какое максимальное количество одновременных подключений будет.

Если mod_status не включен, попробуйте включить его, но убедитесь, что он не доступен для общественности. Замените your_ip_address на ip-адрес или имя хоста из белого списка. Это потребует перезагрузки Apache.

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from your_ip_address_or_host_name
</Location> 

Затем, когда вы посетите http: //your.server/server-status (может потребоваться https, если вы используете TLS), вы увидите, сколько запросов обрабатывается одновременно. Если это максимальное значение, рассмотрите возможность настройки параметров MPM в соответствии с требованиями вашего сервера.

0
ответ дан 1 June 2012 в 23:27

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

Похожие вопросы: