O servidor Caddy (ou Caddy Web) é um servidor web de código aberto escrito em GoLang e suporta HTTP/2. Ele usa a biblioteca padrão GoLang para fornecer funcionalidade HTTP. Um recurso notável do Caddy é que o HTTPS é habilitado por padrão. Ele é o primeiro servidor web a fornecer recursos HTTPS sem configuração adicional.

Comparado com nossos servidores web comumente usados, como Nginx e Apache, a maior característica do Caddy é que ele é simples de implantar. Ele possui o módulo básico de servidor web do apache ou nginx e também possui algumas funções exclusivas, como: HTTP/. 2, HTTPS automático, Multi-core, Websockets, Markdown, IPv6 e muito mais.

O Caddy pode ser usado para sites estáticos e dinâmicos. Claro, muitas pessoas viram que o Caddy é fácil de instalar e implantar. Eles integram o Caddy com vários aplicativos, como discos de rede e downloads. , mas também maximiza o Economize recursos do servidor ao máximo e concentre-se no desenvolvimento e gerenciamento de aplicativos de terceiros.
Servidor Web leve da Caddy com a mais alta capacidade - implantação HTTPS automatizada em um minuto de sites e aplicativos de disco de rede

Este artigo compartilhará a instalação e uso do servidor Caddy, mais ferramentas e scripts de construção de sites e:

  1. Comparação de três excelentes gerenciadores de arquivos online (lista de diretórios) - Directory Lister, h5ai e FileRun
  2. Instalação e configuração do Smokeping - ferramenta gratuita de monitoramento de desempenho de rede de código aberto, implantação visual mestre/escravo
  3. Script de instalação com um clique do OneinStack - implante facilmente o certificado Let's Encrypt e configure o site HTTPS

PS: Atualizado em 21 de fevereiro de 2018 , procurando um programa de disco de rede gratuito, você também pode tentar isto: Use o Pydio para criar armazenamento em nuvem privada gratuito - a sincronização automática de vários terminais pode reproduzir vídeos musicais online.

1. Método de instalação do Caddy

Site oficial da Caddy:

  1. Site: https://caddyserver.com/
  2. Baixar: https://caddyserver.com/download
  3. Github: https://github.com/mholt/caddy

Existem apenas três etapas para instalar e implantar o Caddy. Primeiro, selecione a versão do Caddy de acordo com o sistema operacional do seu servidor e faça o download (tanto Linux quanto Windows são suportados).

2. Método de configuração do Caddy

2.1  Criar arquivo de configuração

Primeiro crie um arquivo de configuração e coloque-o em /etc/caddy.

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

Além do arquivo de configuração, o caddy irá gerar automaticamente um certificado SSL e requer uma pasta para colocar o certificado SSL.

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

Como a chave privada será colocada na pasta SSL, as permissões são definidas como 770 para proibir que outros usuários a acessem. Por fim, crie o diretório onde estão colocados os arquivos do site. Se já existir, não há necessidade de criá-lo.

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

2.2  Configurar inicialização

Depois de criar esses arquivos e diretórios, precisamos configurar o caddy como um serviço para que ele possa ser executado automaticamente na inicialização e seja fácil de gerenciar. Como a maioria das distribuições atualmente usa o systemd, falarei apenas sobre como configurar o systemd aqui.

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 Caddyfile.

Você pode usar vim /etc/caddy/Caddyfile diretamente para modificar o Caddyfile ou pode modificá-lo em seu próprio computador e carregá-lo no servidor. Se você modificar o Caddyfile e descobrir que ele não entra em vigor, será necessário executar sudo systemctl restart caddy.service para reiniciar o caddy.

2.4  Formato Caddyfile

O formato do Caddfile é relativamente simples. Primeiro, a primeira linha deve ser o endereço do site, por exemplo:

localhost:8080

ou

wzfou.com

O endereço pode conter um número de porta, então o caddy só abrirá o serviço http nesta porta, mas não https. Se o número da porta não for escrito, o caddy ligará as portas 80 e 443 por padrão e iniciará os serviços http e https em. o mesmo tempo. O endereço pode ser seguido por várias instruções. O formato básico de um Caddyfile é este, composto por um endereço de site e instruções.

Diretiva 2.5 

O objetivo da diretiva é permitir determinadas funções para o site. Existem três formatos de instruções. Vamos primeiro falar sobre as instruções mais simples sem parâmetros, como:

wzfou.com    
gzip

O gzip na segunda linha é uma instrução, que significa ativar a função de compactação gzip, para que o site possa reduzir o tráfego ao transmitir páginas web. O formato do segundo comando é um comando com parâmetros simples:

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

Na terceira linha, o comando log ativará a função de log para o site. Os parâmetros após o comando log informam ao caddy onde o arquivo de log está armazenado. O comando tls na quarta linha diz ao caddy para habilitar https para o site e solicitar automaticamente um certificado. O parâmetro email a seguir é para informar à CA o endereço de e-mail do requerente. (caddy usará vamos criptografar por padrão para solicitar um certificado e renová-lo, o que é muito conveniente)

Além disso, pode haver mais de um parâmetro simples, como a diretiva 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

O comando redir acima usa três parâmetros, o que significa usar o redirecionamento 301 para todas as solicitações. Este comando é muito útil ao alterar o nome de domínio do site. Além disso, o comando tls mudou. Ele não apenas passa o parâmetro email, mas também passa o caminho do certificado e da chave privada, respectivamente. Dessa forma, o caddy não solicitará automaticamente um certificado, mas usará o certificado fornecido. pelo caminho.

Neste exemplo, marcadores como {uri} também são usados. Uma lista detalhada pode ser encontrada aqui: https://caddyserver.com/docs/placeholders. O último tipo de instrução usa parâmetros complexos. Esse tipo de instrução pode conter muitos parâmetros, portanto, precisa ser colocado entre chaves, como a instrução de cabeçalho:

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}
}

As diretivas de cabeçalho nas linhas 6 a 10 representam a adição de Access-Control-Allow-Origin e Access-Control-Allow-Methods< a todas as solicitações /api/xxx. > Esses dois cabeçalhos podem suportar acesso entre domínios javascript. A linha 9 representa a exclusão do cabeçalho do servidor para evitar que outras pessoas vejam o tipo de servidor.

As linhas 11-13 usam a instrução fastcgi, o que significa que a solicitação é passada para programas de back-end como php e ruby ​​​​por meio do fastcgi.

As linhas 14-15 usam o comando rewrite. A função deste comando é redirecionar internamente para o servidor Após o seguinte parâmetro para, existem mais três parâmetros. semelhante. try_files para nginx. Diga ao caddy para primeiro verificar se existe um arquivo correspondente a {caminho} no diretório raiz da URL /var/www. Se não houver nenhum arquivo correspondente a {caminho}, verifique se existe um diretório correspondente a {caminho}. não há nenhum, encaminhe-o para o arquivo de entrada index.php. Este recurso é geralmente usado no framework MVC do PHP.

2.6  Site com vários domínios

Os itens mencionados acima são todos URLs de um único nome de domínio. E se vários nomes de domínio forem implantados no mesmo servidor? É muito simples. Basta expandi-lo com uma chave após o nome do domínio, da seguinte forma:

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 é a configuração básica do caddy. Para obter mais informações, consulte a documentação do site oficial: https://caddyserver.com/docs.

3. Script de construção de site com um clique do Caddy

Depois de observar a configuração do Caddy acima, alguns amigos podem se perguntar se existe um script Caddy para construção de sites com um clique.

3.1 Instalador do Caddy-Web-Server

  1. Endereço do projeto: https://github.com/sayem314/Caddy-Web-Server-Installer

Requisitos do sistema: Ubuntu 14.x, 15.x, 16.x, Debian 7.x , 8.x, 9.x, CentOS 6.8, 7.2. Execute o seguinte comando:

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

Em seguida, use o seguinte comando para prosseguir:

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版本信息

Comando de instalação do plugin:

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

Ao instalar caddy, você será solicitado a inserir seu nome de domínio e endereço de e-mail (ele emitirá automaticamente ssl para você) e, em seguida, usar o comando para iniciar caddy!

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

Esta é a interface para uma instalação bem-sucedida:

Áudio, vídeo, etc. também podem ser inseridos online.

4. Resumo

Usar o Caddy como um servidor web leva quase apenas alguns minutos para instalar e executar. É claro que o Caddy também pode implementar cache, espelhamento, etc., como as regras de configuração do Caddy, que também são relativamente simples. o site oficial. O documento pode ser copiado por você.

Caddy emitirá automaticamente um certificado Let's Encrypt gratuito, mas você precisa primeiro resolver o nome de domínio para o servidor, caso contrário, você receberá um erro ao adicionar um host virtual. Se o Caddy pode ser usado como um ambiente de produção formal ainda é uma questão em aberto, mas não há problema em usar o Caddy como um servidor HTTP simples.

Deixe uma resposta