Caddyでバーチャルホストを構築する

Caddyでバーチャルホストを構築する

caddyでバーチャルホストを構築する手順です。作業はすぐに終わります。

環境

  • OS  CentOS Linux release 7.8.2003
  • サーバー さくらのクラウド
  • Caddy 1.0.4

Caddyfile編集

caddyfileにドメインを追加するだけで、バーチャルホストを構築することができます。

以下は「hoge.com」で動いてるサーバーに「foo.com」と「www.foo.com」を追加した例となります。
※「cp」はバックアップをとっているだけです。

$ sudo cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.`date +%y%m%d`

$ sudo vi /etc/caddy/Caddyfile
 
hoge.com {
    root /var/www
    gzip
    tls hoge@hoge.com
    fastcgi / 127.0.0.1:9000 php
    log /var/log/caddy/cady-accesslog  {
        rotate_size     50
        rotate_age      5
        rotate_keep     4
        rotate_compress
 
    }
    errors /var/log/caddy/caddy-errors {
        rotate_size     50
        rotate_age      5
        rotate_keep     4
        rotate_compress
 
    }
    redir {
        if {scheme} is http
        / https://{host}{uri}
    }
    header / {
    Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
    X-Xss-Protection "1; mode=block"
    X-Content-Type-Options "nosniff"
    X-Frame-Options "DENY"
    Content-Security-Policy "upgrade-insecure-requests"
    Referrer-Policy "strict-origin-when-cross-origin"
    Cache-Control "public, max-age=15, must-revalidate"
    Feature-Policy "accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'self'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture *; speaker 'none'; sync-xhr 'none'; usb 'none'; vr 'none'"
    }
}

www.foo.com, foo.com {
    root /var/www/foo
    gzip
    tls foo@foo.com
    fastcgi / 127.0.0.1:9000 php
    log /var/log/caddy/cady-accesslog  {
        rotate_size     50
        rotate_age      5
        rotate_keep     4
        rotate_compress
 
    }
    errors /var/log/caddy/caddy-errors {
        rotate_size     50
        rotate_age      5
        rotate_keep     4
        rotate_compress
 
    }
    redir {
        if {scheme} is http
        / https://{host}{uri}
    }
    header / {
    Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
    X-Xss-Protection "1; mode=block"
    X-Content-Type-Options "nosniff"
    X-Frame-Options "DENY"
    Content-Security-Policy "upgrade-insecure-requests"
    Referrer-Policy "strict-origin-when-cross-origin"
    Cache-Control "public, max-age=15, must-revalidate"
    Feature-Policy "accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'self'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture *; speaker 'none'; sync-xhr 'none'; usb 'none'; vr 'none'"
    }
}

再起動すれば「foo.com」が追加されます。あとは「/var/www/foo」にファイルを置けば完了です。

sudo systemctl restart caddy