Distintas formas de configurar el CaddyFile [Caddy v1]
⚠️ Solo sirven para 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 } }