h2o をリバースプロキシにして netdata を表示する

github.com

h2oHTTP/2対応のWebサーバです。 Proxy モジュールを利用することでリバースプロキシとして動作します。

CentOS7ではOpenSSL1.0.1がインストールされており*1ALPN(OpenSSL1.0.2以上)を利用するHTTP/2の利用要件を満たしません。 ですが、ここで紹介するh2oパッケージではLibreSSLをバンドルしており、HTTP/2を利用することが可能です。


環境

# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core) 

netdataのインストール

www.instrumedley.net


h2oのインストール

# cat <<EOF >/etc/yum.repos.d/h2o.repo
[bintray-tatsushid-h2o-rpm]
name=bintray-tatsushid-h2o-rpm
#If your system is CentOS
baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/centos/\$releasever/\$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF

#
# yum install h2o -y

h2oの設定(/etc/h2o/h2o.conf)

user: nobody
hosts:
  "www.example.com:443":
    listen:
      port: 443
      ssl:
        certificate-file: "/etc/pki/tls/certs/localhost.crt"
        key-file: "/etc/pki/tls/private/localhost.key"
    paths:
      "/":
        proxy.reverse.url: http://127.0.0.1:19999/
access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log
pid-file: /var/run/h2o/h2o.pid
# systemctl restart h2o.service

これで、https://www.example.com/からnetdataのダッシュボードにアクセスできるようになります。

*1:CentOS7.4以降はOpenSSL1.0.2がインストールされている