분류 html

안녕 Nginx, 안녕 Caddy

컨텐츠 정보

  • 조회 21 (작성일 )

본문

그래서 최근에 개인 웹 사이트를 Nginx에서 Caddy로 전환했습니다. 나는 그것에 대해 많이 들었고 특전이기 때문에 시도해보고 싶었기 때문에 꽤 오랫동안 이것을 계획했습니다. 그래서 이 포스트에서 저는 제 여정과 설정, 지금까지 제가 겪었던 부침, 그리고 제 관할권에 대해 살펴볼 것입니다.


https://dev.to/hanna/goodbye-nginx-hello-caddy-3p1k


웹 서버 구하기 


웹 서버 여정에서 가장 먼저 해야 할 일은 웹 서버 소프트웨어 자체를 설치하고 설정하는 것입니다. 내 VPS가 우분투를 실행 중이므로 Nginx 및 Caddy와 같은 설치는 일반적으로 실행하는 것만큼 간단합니다.


sudo apt install -y <package>


그러나 이번에는 그렇지 않았습니다. 내 서버가 cloudflare 뒤에 있기 때문에 cloudflare dns 지원을 활성화하려면 캐디용 플러그인을 활성화 해야 했습니다.


이 작업을 수행하려면 먼저 최신 버전의 Go 언어를 설치해야 했습니다. Caddy는 Go를 기반으로 구축되었지만 당시 Ubuntu 리포지토리의 최신 버전은 Go 1.13이었고 Caddy에는 Go 1.14가 필요했습니다. 다음 명령을 사용하여 Go 1.14.2를 얻고 마지막으로 Go를 내 경로에 추가했습니다.


wget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local



Go를 설치 한 후 플러그인을 사용하여 소스에서 웹 서버를 빌드 할 수 있도록 Caddy의 xcaddy 도구를 설치했습니다.이 도구는 매우 사용하기 쉬웠고 단일 명령으로 실행 파일을 빌드 할 수 있었습니다.


xcaddy build --with github.com/caddy-dns/cloudflare


컴파일을 마친 후 단일 실행 파일을 /usr/bin에 넣고 이제 Caddy를 설치했습니다.


구성 


Caddy가 제공 한 구성을 설치 한 후 처음에는 이 부분이 약간 까다로웠지만 잠시 후 내가 해야 할 일을 이해했습니다. 가장 먼저 해야 할 일은 2 개의 권한이 있는 범위가 지정된 cloudflare API 토큰을 만드는 것이었습니다. 여기에서 읽을 수 있습니다.


웹 서버의 실제 구성을 만드는 것은 Nginx 구성 파일에 비해 매우 간단합니다. 아래는 내 웹 사이트의 현재 구성입니다.


<domain here> {
  root * /var/www/html
  file_server

  tls <email here> {
    dns cloudflare {env.CLOUDFLARE_API_TOKEN}
  }
}


그 후에 Caddy에게 Caddyfile을 사용하도록 지시하거나 명령을 사용하여 json으로 변환하여 사용할 수 있으므로 계속해서 다음 명령으로 후자를 수행했습니다.


caddy adapt --config Caddyfile >> /etc/caddy/config.json


마지막으로 간단한 명령으로 웹 서버를 시작할 수 있었습니다.


sudo caddy start --config /etc/caddy/config.json



Systemd 구성 


Caddy를 백그라운드에서 실행하고 시스템이 관리하도록 하고 싶었기 때문에 간단한 서비스를 만들었습니다.


[Unit]
Description=Caddy Web Server
Requires=network.target

[Service]
ExecStart=/usr/bin/caddy run --config /etc/caddy/config.json
ExecReload=/usr/bin/caddy reload --config /etc/caddy/config.json
ExecStop=/usr/bin/caddy stop

[Install]
WantedBy=multi-user.target


마지막 단어 


Caddy를 설치하는 것은 분명 여정이었지만, 자동 인증서 갱신, 일반적으로 자동 https / ssl, 최신 기술을 기반으로 구축되고 더 간단한 구성 및 플러그인 설치 등의 장점이 있습니다. 여기에서 캐디에 대해 자세히 읽을 수 있습니다. 읽어 주셔서 감사합니다!