El servidor Caddy (o Caddy Web) es un servidor web de código abierto escrito en GoLang y admite HTTP/2. Utiliza la biblioteca estándar GoLang para proporcionar funcionalidad HTTP. Una característica notable de Caddy es que HTTPS está habilitado de forma predeterminada. Es el primer servidor web que proporciona funciones HTTPS sin configuración adicional.

En comparación con nuestros servidores web de uso común, como Nginx y Apache, la característica más importante de Caddy es que es fácil de implementar. Tiene el módulo de servidor web básico de apache o nginx y también tiene algunas funciones únicas, como: HTTP/. 2, HTTPS automático, multinúcleo, Websockets, Markdown, IPv6 y más.

Caddy se puede utilizar para sitios web estáticos y dinámicos. Por supuesto, muchas personas han visto que Caddy es fácil de instalar e implementar. Integran Caddy con varias aplicaciones, como discos de red y descargas. Esto no solo aprovecha la implementación y configuración simples de Caddy. , pero también maximiza el ahorro de recursos del servidor al máximo y se centra en el desarrollo y gestión de aplicaciones de terceros.
El servidor web liviano de Caddy con la mayor capacidad: implementación HTTPS automatizada en un minuto de sitios web y aplicaciones de disco de red

Este artículo compartirá la instalación y el uso del servidor Caddy, más scripts y herramientas de creación de sitios web y:

  1. Comparación de tres excelentes administradores de archivos en línea (lista de directorios): Directory Lister, h5ai y FileRun
  2. Instalación y configuración de Smokeping: herramienta gratuita de monitoreo del rendimiento de la red de código abierto, implementación visual maestro/esclavo
  3. Script de instalación con un solo clic de OneinStack: implemente fácilmente el certificado Let's Encrypt y configure el sitio HTTPS

PD: Actualizado el 21 de febrero de 2018. está buscando un programa de disco de red gratuito. También puede probar esto: use Pydio para crear almacenamiento en la nube privado gratuito: la sincronización automática multiterminal puede reproducir videos musicales en línea.

1. Método de instalación del carrito

Sitio web oficial de Caddy:

  1. Sitio web: https://caddyserver.com/
  2. Descargar: https://caddyserver.com/download
  3. Github: https://github.com/mholt/caddy

Sólo hay tres pasos para instalar e implementar Caddy. Primero, seleccione la versión de Caddy según el sistema operativo de su servidor y descárguela (se admiten tanto Linux como Windows).

2. Método de configuración del carrito

2.1  Crear archivo de configuración

Primero cree un archivo de configuración y colóquelo en /etc/caddy.

sudo mkdir /etc/caddy
sudo touch /etc/caddy/Caddyfile
sudo chown -R root:www-data /etc/caddy

Además del archivo de configuración, caddy generará automáticamente un certificado SSL y requiere una carpeta para colocar el certificado SSL.

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

Debido a que la clave privada se colocará en la carpeta SSL, los permisos se establecen en 770 para prohibir que otros usuarios accedan a ella. Finalmente, cree el directorio donde se ubican los archivos del sitio web. Si ya existe, no es necesario crearlo.

sudo mkdir /var/www
sudo chown www-data:www-data /var/www

2.2  Configurar el inicio

Después de crear estos archivos y directorios, debemos configurar caddy como un servicio para que pueda ejecutarse automáticamente al arrancar y sea fácil de administrar. Debido a que la mayoría de las distribuciones actualmente usan systemd, aquí solo hablaré sobre cómo configurar systemd.

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service   # 从 github 下载 systemd 配置文件
sudo systemctl daemon-reload        # 重新加载 systemd 配置
sudo systemctl enable caddy.service # 设置 caddy 服务自启动
sudo systemctl status caddy.service # 查看 caddy 状态

2.3  Editar archivo Caddy.

Puede usar vim /etc/caddy/Caddyfile directamente para modificar el Caddyfile, o puede modificarlo en su propia computadora y cargarlo en el servidor. Si modifica Caddyfile y descubre que no tiene efecto, debe ejecutar sudo systemctl restart caddy.service para reiniciar caddy.

2.4  formato de archivo Caddy

El formato de Caddfile es relativamente simple. Primero, la primera línea debe ser la dirección del sitio web, por ejemplo:

localhost:8080

o

wzfou.com

La dirección puede contener un número de puerto, entonces caddy solo abrirá el servicio http en este puerto, pero no https. Si el número de puerto no está escrito, caddy vinculará los puertos 80 y 443 de forma predeterminada e iniciará los servicios http y https en. al mismo tiempo. La dirección puede ir seguida de un montón de instrucciones. El formato básico de un Caddyfile es este, que consta de una dirección de sitio web e instrucciones.

Directiva 2.5 

El objetivo de la directiva es habilitar determinadas funciones para el sitio web. Hay tres formatos de instrucciones. Primero hablemos de las instrucciones más simples sin parámetros, como por ejemplo:

wzfou.com    
gzip

El gzip en la segunda línea es una instrucción, lo que significa activar la función de compresión gzip, para que el sitio web pueda reducir el tráfico al transmitir páginas web. El formato del segundo comando es un comando con parámetros simples:

wzfou.com
gzip
log /var/log/caddy/access.log
tls iwzfou@gmail.com
root /var/www/

En la tercera línea, el comando de registro habilitará la función de registro para el sitio web. Los parámetros después del comando de registro le indican a Caddy dónde está almacenado el archivo de registro. El comando tls en la cuarta línea le dice a caddy que habilite https para el sitio web y solicite automáticamente un certificado. El siguiente parámetro de correo electrónico es para informar a la CA de la dirección de correo electrónico del solicitante. (caddy utilizará let's encrypt de forma predeterminada para solicitar un certificado y renovarlo, lo cual es muy conveniente)

Además, puede haber más de un parámetro simple, como la directiva redir:

wzfou.com
gzip
log /var/log/caddy/access.log
tls /etc/ssl/cert.pem /etc/ssl/key.pem
root /var/www/
redir / https://wzfou.com/archive/{uri} 301

El comando redir anterior toma tres parámetros, lo que significa utilizar la redirección 301 para todas las solicitudes. Este comando es muy útil al cambiar el nombre de dominio del sitio web. Además, el comando tls ha cambiado. No solo pasa el parámetro de correo electrónico, sino que también pasa la ruta del certificado y la clave privada respectivamente. De esta manera, caddy no solicitará automáticamente un certificado, sino que utilizará el certificado proporcionado. por el camino.

En este ejemplo, también se utilizan marcadores de posición como {uri}. Puede encontrar una lista detallada aquí: https://caddyserver.com/docs/placeholders. El último tipo de instrucción toma parámetros complejos. Este tipo de instrucción puede contener muchos parámetros, por lo que debe estar encerrado entre llaves, como la instrucción de encabezado:

wzfou.com
gzip
log /var/log/caddy/access.log
tls iwzfou@gmail.com
root /var/www/
header /api {
    Access-Control-Allow-Origin  *
    Access-Control-Allow-Methods "GET, POST, OPTIONS"
    -Server
}
fastcgi / 127.0.0.1:9000 php {
    index index.php
}
rewrite {
    to {path} {path}/ /index.php?{query}
}

Las directivas de encabezado en las líneas 6 a 10 representan agregar Access-Control-Allow-Origin y Access-Control-Allow-Methods< a todas las solicitudes /api/xxx. > Estos dos encabezados pueden admitir el acceso entre dominios de JavaScript. La línea 9 representa la eliminación del encabezado del Servidor para evitar que otros vean el tipo de servidor.

Las líneas 11 a 13 utilizan la instrucción fastcgi, lo que significa que la solicitud se pasa a programas de back-end como php y ruby ​​a través de fastcgi.

Las líneas 14-15 usan el comando de reescritura. La función de este comando es redirigir internamente al servidor . Después del siguiente parámetro a , hay tres parámetros más. similar. try_files para nginx. Dígale a caddy que primero verifique si hay un archivo correspondiente a {ruta} en el directorio raíz de la URL /var/www. Si no hay ningún archivo correspondiente a {ruta}, verifique si hay un directorio correspondiente a {ruta}. si no hay ninguno, reenvíelo al archivo de entrada index.php. Esta característica se usa generalmente en el marco MVC de PHP.

2.6  Sitio web multidominio

Las mencionadas anteriormente son todas las URL de un único nombre de dominio, entonces, ¿qué pasa si se implementan varios nombres de dominio en el mismo servidor? Es muy simple. Solo necesita expandirlo con una llave después del nombre de dominio, de la siguiente manera:

wzfou.com {
    gzip
    log /var/log/caddy/wzfou_com.log
    tls iwzfou@gmail.com
    root /var/www/
    header /api {
        Access-Control-Allow-Origin  *
        Access-Control-Allow-Methods "GET, POST, OPTIONS"
        -Server
   }
    fastcgi / 127.0.0.1:9000 php {
        index index.php
    }
    rewrite {
        to {path} {path}/ /index.php?{query}
    }
}
wzfou.com{
    tls iwzfou@gmail.com
    log /var/log/caddy/wzfou_com.log
    redir / https://wzfou.com/{uri} 301
}

Esta es la configuración básica del caddy. Para obtener más información, consulte la documentación del sitio web oficial: https://caddyserver.com/docs.

3. Script de creación de sitios web Caddy con un solo clic

Después de ver la configuración de Caddy anterior, algunos amigos pueden preguntarse si existe un script Caddy para la creación de sitios web con un solo clic.

3.1 Instalador-del-servidor-web-Caddy

  1. Dirección del proyecto: https://github.com/sayem314/Caddy-Web-Server-Installer

Requisitos del sistema: Ubuntu 14.x, 15.x, 16.x, Debian 7.x , 8.x, 9.x, CentOS 6.8, 7.2. Ejecute el siguiente comando:

wget https://git.io/vra5C -O - -o /dev/null|bash

Luego use el siguiente comando para continuar:

caddy start  #开启Caddy Web Server
caddy stop  #停止Caddy Web Server
caddy reload  #重载Caddy Web Server
caddy restart  #重启Caddy Web Server
caddy status  #查看Caddy Web Server状态
caddy install  #安装Caddy Web Server
caddy edit  #编辑配置文件Caddyfile
caddy service  #使Caddy Web Server成为一项服务(upstart/systemd)
caddy update  #升级Caddy Web Server
caddy delete  #卸载Caddy and data
caddy about  #关于Caddy Web Server
caddy version  #检测脚本/Caddy/PHP5-fpm版本信息

Instalar comando de complemento:

caddy install http.cache,http.filemanager,http.ipfilter,http.ratelimit

Al instalar caddy, se le pedirá que ingrese su nombre de dominio y dirección de correo electrónico (automáticamente emitirá ssl) y luego use el comando para iniciar caddy!

虚拟主机文件夹:/var/caddywww
配置文件夹:/etc/Caddyfile

Esta es la interfaz para una instalación exitosa:

También puedes insertar audio, vídeo, etc. online.

4. Resumen

Usar Caddy como servidor web casi solo toma unos minutos para instalarlo y ejecutarlo. Por supuesto, Caddy también puede implementar almacenamiento en caché, duplicación, etc., como nginx. Las reglas de configuración de Caddy también son relativamente simples. El sitio web oficial. El documento puede ser copiado por usted mismo.

Caddy emitirá automáticamente un certificado Let's Encrypt gratuito, pero primero debe resolver el nombre de dominio en el servidor; de lo contrario, recibirá un error al agregar un host virtual. Aún es discutible si Caddy puede usarse como un entorno de producción formal, pero no hay ningún problema en usar Caddy como un simple servidor HTTP.

Deja una respuesta