Mainos / Advertisement:

Caddy WebServer

From Taisto
Revision as of 13:00, 19 May 2019 by Minh (talk | contribs)
Jump to navigation Jump to search

Caddy on uusi ja kevyt webpalvelin.

Asennus

Asennus onnistuu helposti seuraavalla komennolla

curl https://getcaddy.com | bash -s personal "http.cache,http.expires,http.minify,http.ratelimit,http.realip,tls.dns.cloudflare"

Tämä asentaa myös seuraavat laajennukset:

  • http.cache
  • http.expires
  • http.ratelimit
  • tls.dns.cloudflare

CloudFlare DNS-laajennusta käytetään Let's Encrypt SSL-sertifikaatin varmentamiseen DNS Challengen avulla kun käytetään CloudFlaren välityspalvelinta.

Salli Caddy-palvelimen käyttämään pienempiä portteja kuin 1024

sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy

Luo konfiguraatioille tärkeät hakemistot

sudo mkdir /etc/caddy
sudo chown -R root:www-data /etc/caddy
sudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
sudo touch /etc/caddy/Caddyfile
sudo mkdir /var/www
sudo chown www-data: /var/www

Konfiguroi systemd

wget https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service
sudo cp caddy.service /etc/systemd/system/
sudo chown root:root /etc/systemd/system/caddy.service
sudo chmod 644 /etc/systemd/system/caddy.service
sudo systemctl daemon-reload

Asenna PHP (vapaaehtoinen, mutta tärkeä WordPressiä varten)

sudo apt install php7.2-fpm php7-2-mysql php7.2-mbstring

Konfigurointi

Caddy-palvelimen konfiguraatiot tehdään /etc/caddy/Caddyfile tiedostoon.

Esimerkki konfiguraatio WordPress-sivua varten

examle.org www.example.org {
    # Email for Let's Encrypt
    tls [email protected]
    root /var/www/mt-tech.fi
    gzip
    fastcgi / /run/php/php7.2-fpm.sock php {
      except /wp-content/upload/
    }
    rewrite {
      if {path} not_match ^\/wp-admin
      if {path} not_match ^\/wp-includes
      if {path} not_match ^\/wp-content
      to {path} {path}/ /index.php?{query}
    }

    log / /var/log/caddy/mt-tech.fi_access.log "{combined}" {
      rotate_size 100 # rotate after 100 MB
      rotate_age  14  # keep log files for 14 days
      rotate_keep 10  # keep at most 10 log files
      rotate_compress
    }
    ratelimit /wp-login.php 5 7 minute
    internal /wp-config.php
}
Mainos / Advertisement: