CentOS 7에서 캐디 설치 및 구성 방법

소개

Caddy는 HTTP / 2 및 자동 HTTPS를 기본적으로 지원하는 새로운 웹 서버 프로그램입니다. 사용 편의성과 보안을 염두에두고 Caddy를 사용하여 단일 구성 파일로 HTTPS 사용 사이트를 신속하게 배포 할 수 있습니다.

전제 조건

1 단계 : 최신 안정적인 Caddy 릴리스 설치

Linux, Mac 또는 BSD 운영 체제에서 다음 명령을 사용하여 최신 안정 시스템 특정 Caddy 릴리스를 설치하십시오.

curl https://getcaddy.com | bash

프롬프트가 표시되면 sudo 비밀번호를 입력하여 설치를 완료하십시오.

Caddy 바이너리가 /usr/local/bin디렉토리에 설치됩니다 . 다음 명령을 사용하여 확인하십시오.

which caddy

출력은 다음과 같습니다.

/usr/local/bin/caddy

보안을 위해 절대로 Caddy 바이너리를 루트로 실행하지 마십시오 . Caddy에게 루트가 아닌 사용자로서 권한있는 포트 (예 : 80, 443)에 바인딩 할 수있는 기능을 제공하려면 setcap다음과 같이 명령 을 실행해야 합니다.

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

2 단계 : 캐디 구성

전용 시스템 사용자 caddy 및 Caddy에 대해 동일한 이름의 그룹을 작성하십시오 .

sudo useradd -r -d /var/www -M -s /sbin/nologin caddy

참고 : 여기에서 작성된 사용자 caddy는 Caddy 서비스를 관리하는 데만 사용할 수 있으며 로그인에 사용할 수 없습니다.

홈 디렉토리 만들기 /var/www캐디 웹 서버 및 홈 디렉토리 /var/www/example.com귀하의 사이트를 :

sudo mkdir -p /var/www/example.com
sudo chown -R caddy:caddy /var/www

SSL 인증서를 저장할 디렉토리를 작성하십시오.

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

Caddy 구성 파일을 저장할 전용 디렉토리를 작성하십시오 Caddyfile.

sudo mkdir /etc/caddy
sudo chown -R root:caddy /etc/caddy

다음과 같은 Caddy 구성 파일을 작성하십시오 Caddyfile.

sudo touch /etc/caddy/Caddyfile
sudo chown caddy:caddy /etc/caddy/Caddyfile
sudo chmod 444 /etc/caddy/Caddyfile
cat <<EOF | sudo tee -a /etc/caddy/Caddyfile
example.com {
    root /var/www/example.com
    gzip
    tls admin@example.com
}
EOF

참고 : 위에서 만든 파일은 정적 인 웹 사이트를 실행하기위한 기본 구성입니다. Caddyfile 작성 방법에 대한 자세한 내용은 여기를 참조 하십시오 .Caddyfile

Caddy의 조작을 용이하게하기 위해 Caddy의 systemd단위 파일을 설정 한 다음 systemdCaddy를 관리하는 데 사용할 수 있습니다.

사용 vi캐디 만들 편집기를 systemd유닛 파일을 :

sudo vi /etc/systemd/system/caddy.service

파일을 채우십시오.

[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Restart=on-abnormal

; User and group the process will run as.
User=caddy
Group=caddy

; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy

; Always set "-root" to something safe in case it gets forgotten in the Caddyfile.
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID

; Use graceful shutdown with a reasonable timeout
KillMode=mixed
KillSignal=SIGQUIT
TimeoutStopSec=5s

; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
LimitNOFILE=1048576
; Unmodified caddy is not expected to use more than that.
LimitNPROC=512

; Use private /tmp and /var/tmp, which are discarded after caddy stops.
PrivateTmp=true
; Use a minimal /dev
PrivateDevices=true
; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys.
ProtectHome=true
; Make /usr, /boot, /etc and possibly some more folders read-only.
ProtectSystem=full
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
;   This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
ReadWriteDirectories=/etc/ssl/caddy

; The following additional security directives only work with systemd v229 or later.
; They further retrict privileges that can be gained by caddy. Uncomment if you like.
; Note that you may have to add capabilities required by any plugins in use.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

저장하고 종료하십시오 :

:wq!

캐디 서비스를 시작하고 시스템 부팅시 자동으로 시작되도록합니다.

sudo systemctl daemon-reload
sudo systemctl start caddy.service
sudo systemctl enable caddy.service

3 단계 : 방화벽 규칙 수정

방문자가 Caddy 사이트에 액세스 할 수있게하려면 포트 80 및 443을 열어야합니다.

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

4 단계 : 사이트에 대한 테스트 페이지 작성

index.htmlCaddy 사이트 홈 디렉토리에 이름이 지정된 파일을 작성하려면 다음 명령을 사용하십시오 .

echo '<h1>Hello World!</h1>' | sudo tee /var/www/example.com/index.html

Caddy 서비스를 다시 시작하여 새 컨텐츠를로드하십시오.

sudo systemctl restart caddy.service

마지막으로 웹 브라우저가 http://example.com또는을 가리 킵니다 https://example.com. 메시지 Hello World!가 예상대로 나타납니다.

댓글 남기기

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.

데비안 7에 Mailcow 설치

데비안 7에 Mailcow 설치

Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구