スピードテストサーバ(スピテスサーバ)を構築してみる(CentOS7編)
Speedtest by Ooklaは誰もが知っているスピードテストサービスですが、これに提供されているスピートテストサーバたちはボランティアによって運営されています。
もし、安定した高速な回線があるのでしたらご提供されてはいかがでしょうか。
本稿ではCentOSを用いたスピードテストサーバの構築方法について掲載しています。

必須構成について
OOKLAによると必須構成は以下のようになっています。
CPU: IntelCPU AES-NI必須
メモリ: 16GB以上を推奨
ストレージ: 1GB以上の空き容量
NIC: Chelsio か Mellanox がいい
帯域: 1Gbpsは最低でも必須
Speedtest Server Requirements https://support.ookla.com/hc/en-us/articles/234578628-Speedtest-Server-Requirements
セットアップ
実際にセットアップをしていきます。
ソフトウェアのセットアップはもちろんですが、ポート開放とドメインの取得とDNS設定も必要です。
ポート開放とドメイン
最低2つのポート開放が必要となります。ポート番号は80/tcpと8080/tcpです。
以下ソフトウェアのセットアップです。
Webサーバ(Nginx)
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx
mkdir -p /var/www
mkdir -p /var/lib/nginx/fastcgi
cd /etc/nginx/
mv nginx.conf nginx.conf.bk
vi nginx.conf
nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
keepalive_timeout 5;
client_max_body_size 10m;
server_tokens off;
server_name_in_redirect off;
server {
listen 80;
root /var/www/html;
charset utf-8;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}
}
}
PHP
yum -y install --enablerepo=epel,remi-php71 php php-devel php-fpm php-gd php-mbstring
sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/listen = 127.0.0.1:9000/listen = \/var\/run\/php-fpm\/php-fpm.sock/g' /etc/php-fpm.d/www.conf
sed -i 's/listen.mode = 0660/listen.mode = 0660\nlisten.owner = nginx\nlisten.group = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/;clear_env = no/clear_env = no/g' /etc/php-fpm.d/www.conf
chown -R nginx:nginx /var/lib/php/
systemctl start php-fpm.service
systemctl start nginx.service
systemctl enable php-fpm.service
systemctl enable nginx.service
OOKLAのセットアップ
フロントエンド
cd /var/www/html
wget http://install.speedtest.net/httplegacy/http_legacy_fallback.zip
unzip http_legacy_fallback.zip
rm -f http_legacy_fallback.zip
rm -f speedtest/upload.asp
rm -f speedtest/upload.aspx
rm -f speedtest/upload.jsp
バックエンド
useradd ookla
su ookla
cd
~
mkdir ooklaserver
cd ooklaserver
wget http://install.speedtest.net/ooklaserver/ooklaserver.sh
chmod a+x ooklaserver.sh
インストール
./ooklaserver.sh install
OoklaServer.properties
vi OoklaServer.properties
OoklaServer.allowedDomains = *.ookla.com, *.speedtest.net
OoklaServer.tcpPorts = 8080
OoklaServer.udpPorts = 8080
OoklaServer.maxThreads = 32
起動
./ooklaserver.sh start
動作確認
テスターで、必ず動作確認を行うこと。