Speedtest у себя на сервере

Версия для печатиОтправить другуPDF version

Думаю каждый пользователь Интернета хоть раз в жизни измерял скорость своего канала Internet. Способов измерения есть довольно много...

Например, вот здесь находится один из тестов скорости соединения, позволяющий измерить скорость download/upload от Вас до множества точек по всему миру. Да, согласен, погрешность иногда он дает неплохую (именно из-за этого пользуюсь другими методами)... Спишем это на известность сервиса, и на загруженость маршрутизаторов.

Но мало кто знает, что похожий сервис можно разместить у себя на сервере. Условия - работающий веб-сервер с поддержкой PHP. Что ж... Нужно проверить как это работает.

Создадим рабочий каталог и выставим необходимые права:

# mkdir /usr/local/www/speedtest
# chown www:www /usr/local/www/speedtest
# cd /usr/local/www/speedtest

1. Скачиваем архив теста с сайта.

Дистрибутив можно загрузить на странице проекта: http://speedtest.net/mini.php. Кстати, здесь же присутствует краткая инструкция по установке и настройке

# wget http://c.speedtest.net/mini/mini.zip
--2011-12-04 16:21:41--  http://c.speedtest.net/mini/mini.zip
Распознаётся c.speedtest.net... 93.184.221.133
Устанавливается соединение с c.speedtest.net|93.184.221.133|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 98993097 (94M) [application/zip]
Сохраняется в каталог: `mini.zip'.
 
100%[===================================================>] 98 993 097   716K/s   в 2m 24s
 
2011-12-04 16:24:06 (672 KB/s) - `mini.zip' сохранён [98993097/98993097]

2. Распаковываем архив. В нашем случае это zip-файл. Поэтому используем утилиту unzip. Если у Вас она не установлена, то установить ее можно из портов (/usr/ports/archivers/unzip).

# unzip mini.zip
Archive:  mini.zip
  inflating: crossdomain.xml
  inflating: index-asp.html
  inflating: index-aspx.html
  inflating: index-php.html
   creating: speedtest/
  inflating: speedtest/random2000x2000.jpg
  inflating: speedtest/upload.asp
  inflating: speedtest/random500x500.jpg
  inflating: speedtest/upload.aspx
  inflating: speedtest/upload.php
  inflating: speedtest/random1000x1000.jpg
  inflating: speedtest/swfobject.js
  inflating: speedtest/random750x750.jpg
  inflating: speedtest/random350x350.jpg
 extracting: speedtest/latency.txt
  inflating: speedtest/random1500x1500.jpg
  inflating: speedtest.swf
  inflating: troubleshooting.txt
  inflating: speedtest/random4000x4000.jpg
  inflating: speedtest/random2500x2500.jpg
  inflating: speedtest/random3500x3500.jpg
  inflating: speedtest/random3000x3000.jpg

3. Необходимо переименовать index-php.html в index.html (кстати, исходя из предложеных расширений, поддерживаются также asp/asp.net)

# mv index-php.html index.html

4. "Поправим" конфигурационный файл Apache. Добавим в в /usr/local/etc/apache22/httpd.conf (в секцию alias_module) такие строки:

Alias /speedtest "/usr/local/www/speedtest"
<Directory "/usr/local/www/speedtest">
  DirectoryIndex index.html
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

 Проверяем, не допустили ли мы ошибок при редактировании и перезапускаем Apache:

# apachectl configtest
Syntax OK
# apachectl graceful

Результат этих действий можно просмотреть здесь (необходима поддержка Flash в браузере), как раз и скорость можно протестировать