スピードテストサーバ(スピテスサーバ)を構築してみる(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

動作確認

テスターで、必ず動作確認を行うこと。