-
AWS Ubuntu 18.04 Caddy 세팅About AWS 2019. 6. 27. 12:24
- 사용하는 이유 :
-
웹서버는 Apache, Nginx 등등 이미 많이 존재함.
-
주소 앞에 https를 활용할 수 있는 SSL 인증서를 받는 대부분의 방법은 유료임.
-
Letsencrypt를 사용하면 무료로 https를 쓸 수 있는데, Caddy를 통해 자동으로 Letsencrypt 설정이 가능함.
- 준비물
설치
1. https://caddyserver.com/download 에서 linux 64bit 선택하여 아래 one-step installer script 복사해서 우분투 터미널에서 실행
2. caddy는 우분투에 설치되었고 caddy를 systemd service로 띄우기위한 systemd service description파일 세팅 ( 링크 )
[참고 : 리눅스 퍼미션 개념 - 링크 ]
sudo mkdir /etc/caddy sudo chown -R root:root /etc/caddy sudo mkdir /etc/ssl/caddy sudo chown -R root:www-data /etc/ssl/caddy sudo chmod 0770 /etc/ssl/caddy sudo mkdir /var/www/(프로젝트 명)(Ex. Whendy-Staging) sudo chown www-data:www-data /var/www sudo chmod 555 /var/www
3. /var/www/프로젝트명/index.html을 만들고 permission을 555로 만들어 www-data user가 읽을수있게 만든다
sudo chown -R www-data:www-data /var/www sudo chmod -R 555 /var/www
4. sudo vi /etc/caddy/Caddyfile 에 아래 내용을 넣고 저장. ( CaddyFile 링크 )
프로젝트 URL명 (ex. whendy-staging.codeeight.io ) { root /var/www/프로젝트명 gzip }
5. Caddyfile owner, permission 변경
sudo chown root:root /etc/caddy/Caddyfile sudo chmod 644 /etc/caddy/Caddyfile
6. caddy systemd service script 작성
wget https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service sudo cp caddy.service /etc/systemd/system/ sudo chown root:root /etc/systemd/system/caddy.service sudo chmod 644 /etc/systemd/system/caddy.service sudo systemctl daemon-reload
7. 도메인을 ip에 연결
( 코드에잇은 주로 namecheap을 활용해서 도메인 구입을 합니다. )
[ 해당되는 도메인에 있는 MANAGE 버튼을 클릭한다. ]
[ Advanced DNS 하단에 있는 ADD NEW RECORD를 입력 후 나오는
Value에 Ubuntu 접속 ID를 입력한다. ]
8. nslookup “프로젝트 URL”(Ex. nslookup whendy-production.codeeight.io) 를 실행해서 IP가 잘 나오는지 확인
9.
sudo caddy --conf /etc/caddy/Caddyfile
로 Caddyfile을 실행한다.
10.
journalctl -f -u caddy.service
을 실행해서 Caddyfile이 정상적으로 실행되는지 확인한다.
11. 443번 포트 Permisssion이 없어 bind가 안 된다는 에러가 나오면,
sudo vi /etc/systemd/system/caddy.service
을 실행한다.
12. 47번째 줄("AmbientCapabilities")의 주석 ;을 삭제한 뒤 저장한다.
13.
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
을 실행한다.
14. 아래 두 명령어를 실행한다.
sudo systemctl daemon-reload sudo systemctl restart caddy.service
'About AWS' 카테고리의 다른 글
Ubuntu 18.04에서 Gunicorn 설치 (0) 2019.06.29 Ubuntu 18.04에서 python 3.7, pip 설치 (0) 2019.06.27 AWS Ubuntu 세팅 (0) 2019.06.27