Distintas formas de configurar el CaddyFile [Caddy v1]

⚠️ Solo sirven para Caddy v1

Distintas formas de configurar el CaddyFile [Caddy v1]

Hoy os vamos a hablar de algunas formas de Configurar el CaddyFile para hacer funcionar webs como Wordpress o Flarum. Además de algunas medidas de seguridad que podemos implementar en nuestro sitio web.

Redirecciones en el CaddyFile

Con esta plantilla podemos hacer cualquier tipo de re dirección tanto de wwww a sin www, de sin www a www, redirección de un dominio a un subdomino, ect...

#redirecion
 www.dominio.es {
                  redir https://dominio.es{uri}
 }

Crear archivos de log de nuestra Web

Empezamos creando la carpeta "caddy" en /var/log y cambiando el usurio y grupo propietario de la misma para que Caddy puede crear y modificar sus ficheros. Lo hacemos de la siguiente manera:

cd /var/log
mkdir caddy
chown -R caddy:caddy caddy

Una vez realizados los pasos anteriores tenemos que ir a nuestro Caddyfile y añadir la linea "log" especificando la ruta y el nombre del archivo. Además podemos añadir "errors" así nos registra solo los errores en ese fichero. Y el "gzip" nos sirve para activar la compresión en nuestro servidor.

dominio.es {
  root /var/www/
  log /var/log/caddy/dominio.es.log
  errors /var/log/caddy/dominio.es.err
  gzip
}

Proteger una ruta con usuario y contraseña

Con basicauth podemos poner un login que impide que se cargue la web hasta que no le deas la clave correcta. Es muy útil para proteger por ejemplo el directorio de phpmyadmin.

dominio.es {
  root /var/www/
  log /var/log/caddy/dominio.es.log
  errors /var/log/caddy/dominio.es.err
  gzip
  basicauth /phpmyadmin/ usuario pass
}

En este ejemplo protegemos la carpeta "/phpmyadmin" y le añadimos un user/pass. El usuario y la contraseña que ponemos en el CaddyFile es el que nos sirve para loguearnos en ese directorio. Ej: "dominio.es/phpmyadmin"

Añadir el php a nuestro CaddyFile

El uso del php en nuestra web lo podemos añadir de 2 formas indicando toda la ruta del archivo "fpm.sock", en nuestro caso está en "/run/php/php7.1-fpm.sock".

dominio.es {
  root /var/www/
  log /var/log/caddy/dominio.es.log
  errors /var/log/caddy/dominio.es.err
  gzip
  fastcgi / /run/php/php7.1-fpm.sock php
}

Y la segunda forma es usando la ruta absoluta, como hicimos en el anterior tutorial de Caddy cambiamos en el php.ini la ruta "/run/php/php7.1-fpm.sock" por "127.0.0.1:9000"

dominio.es {
  root /var/www/
  log /var/log/caddy/dominio.es.log
  errors /var/log/caddy/dominio.es.err
  gzip
  fastcgi / 127.0.0.1:9000 php
}

CaddyFile para Wordpress

dominio.es {
root /var/www/html/
gzip
fastcgi / 127.0.0.1:9000 php
rewrite {
if {path} not_match ^/wp-admin
to {path} {path}/ /index.php?{query}
}

CaddyFile para Flarum.org

dominio.com {
root /var/www/html/
gzip
fastcgi / 127.0.0.1:9000 php {
ext .php
split .php
index index.php
}
rewrite {
if {path} match ^/admin
to {path} {path}/ /admin.php
}
rewrite {
if {path} match ^/api
to {path} {path}/ /api.php
}
rewrite {
to {path} {path}/ /index.php
}
}

Caddy File para Ghost

dominio.com {
proxy / 127.0.0.1:2369 {
transparent
header_upstream X-Forwarded-Proto https
}
}