ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS Ubuntu 18.04 Caddy 세팅
    About AWS 2019. 6. 27. 12:24

    • 사용하는 이유 :
      • 웹서버는 Apache, Nginx 등등 이미 많이 존재함.

      • 주소 앞에 https를 활용할 수 있는 SSL 인증서를 받는 대부분의 방법은 유료임.

      • Letsencrypt를 사용하면 무료로 https를 쓸 수 있는데, Caddy를 통해 자동으로 Letsencrypt 설정이 가능함.

    • 준비물
      • 편집기 : vim ( sudo apt-get install vim ) ( 참고 링크 )

      • dnsutils ( sudo apt-get install dnsutils ) ( 참고 링크

      • [ 참고 : 환경 변수 / 쉘 변수 - 링크 ]

      • [ 참고 : 변수 전달 방식 - 링크 ]

    설치

    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

    댓글

Designed by Tistory.