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.
Este artigo compartilhará a instalação e uso do servidor Caddy, mais ferramentas e scripts de construção de sites e:
- Comparação de três excelentes gerenciadores de arquivos online (lista de diretórios) - Directory Lister, h5ai e FileRun
- Instalação e configuração do Smokeping - ferramenta gratuita de monitoramento de desempenho de rede de código aberto, implantação visual mestre/escravo
- 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:
- Site: https://caddyserver.com/
- Baixar: https://caddyserver.com/download
- 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
- 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.