아래글 "wsl(windows subsystem for linux)에 pm2 설치 및 환경설정"은 비단 wsl에만 해당되지 않으므로 ubuntu와 같은 linux환경에서 이어서 web서버를 설정한다
package를 통한 nginx 설치
$ sudo apt-get install nginx |
$ nginx -v nginx version: nginx/1.14.0 (Ubuntu) |
// 시작 $ sudo service nginx start $ sudo systemctl start nginx $ sudo /etc/init.d/nginx start // 재시작 $ sudo service nginx restart $ sudo systemctl restart nginx $ sudo /etc/init.d/nginx restart // 중지 $ sudo service nginx stop $ sudo systemctl stop nginx $ sudo /etc/init.d/nginx stop // 상태 $ sudo service nginx status $ sudo systemctl status nginx // 설정 reload $ sudo service nginx reload $ sudo systemctl reload nginx $ sudo nginx -s reload // configuration file syntax check $ sudo nginx -t |
설정파일 경로
package(apt-get을 통한 설치)의 경우 : /etc/nginx에 위치 * 직접 compile한 경우 : /usr/local/nginx/conf, /usr/local/etc/nginx |
Ubuntu 18.04에서 Let's Encrypt Nginx에 SSL 적용
1. Certbot 설치
레포지토리 추가
$ sudo add-apt-repository ppa:certbot/certbot |
apt 를 사용하여 Certbot의 Nginx 패키지를 설치
$ sudo apt install python-certbot-nginx |
2. nginx 설정 확인
SSL을 자동으로 적용시키기 위해서는 Certbot이 서버 블록에서 확실한 정보를 찾을 수 있어야 하며 특히 SSL의 경우, server_name 에서 감지하여 요청하는 방식
도메인에 대한 서버 블록이 /etc/nginx/sites-available/flow-ers.ai 에 대한 서버 블록의 server_name 구문 설정
$ sudo vi /etc/nginx/sites-available/flow-ers.ai server_name api.flow-ers.ai; |
파일 구문이 정상확인
$ sudo nginx -t 오류발생시 변경후 리로드 $ sudo system reload nginx |
3. 방화벽을 통해 https 허용
현재 방화벽 설정 확인(우분투 방화벽 - UFW)
$ sudo ufw status |
UFW는 기본 비활성화 상태이기에 이를 활성화
참고 : https://webdir.tistory.com/206
Nginx Full 프로파일을 허용
$ sudo ufw allow 'Nginx Full' $ sudo ufw allow 'OpenSSH' |
4. SSL 인증서 가져오기
Certbot은 다양한 웹 서버에 대하여 SSL 인증서를 얻을 수 있는 플러그인을 제공. Nginx 플러그인은 필요할 때마다 자동적으로 Nginx를 재구성하고, 구성을 다시 로드하는 작업을 담당. Nginx 플러그인을 사용하기 위해 입력
$ sudo certbot --nginx -d api.flow-ers.ai |
nginx 플러그인이 적용된 certbot 을 -d 인자 우측에 있는 도메인들을 유효하게 만드는 설정
공개키 저장소, 비밀키 저장소, 인증서는 설치가 완료된 이후 90일 까지 유효, 90일 전에 certbot을 다시 실행해 인증서를 갱신하세요. (역자 주 : 자세한 내용은 5단계 - Certbot 자동 갱신 시키기 를 참고)
/etc/letsencrypt 에 인증서 저장 개인 키와 공개 키를 안전한 장소에 보관
5. SSL 자동으로 갱신시키기
Let's Encrypt의 인증서는 90일 동안 유효. 인증서를 자주 갱신시키는 것 권장. certbot 패키지를 설치하여 자동화. /etc/cron.d 내의 스크립트는 하루 두번씩 실행되어 만료일까지 30일 이내의 모든 인증서를 자동 갱신
갱신 절차를 테스트
$ sudo certbot renew --dry-run |
6. 자동갱신 CronTab 등록 및 조회
* 편집 crontab -e * 목록 조회 crontab -l * 삭제 crontab -r * 주기 설정 * * * * * (분, 시, 일, 월, 요일) crontab -e (편집)후 위와 같이 * 표시가 있는 곳에 실행이 되길 원하는 시각 기재 왼쪽에서부터 분(0-59), 시(0-23), 일(1-31), 월(1-12), 요일(0-7) 순서대로 입력합니다. 0과 7 = 일요일 1 = 월요일 6 = 토요일 |
'현재' 카테고리의 다른 글
pm2를 이용한 springboot에 scouter(APM) 설정 #1 (0) | 2020.08.14 |
---|---|
Ubuntu 18.04 Jenkins 설치 (0) | 2020.07.16 |
mysql 서버 5.7에서 8.0으로 업그레이드 후 캐릭터셋 인덱스 '255' 에러날 때 (0) | 2020.07.05 |
AWS EC2 Timezone 변경 (0) | 2020.06.22 |
wsl(windows subsystem for linux)에 pm2 설치 및 환경설정 (0) | 2020.06.17 |