주식 뉴스 분석 프로젝트 <서버 구축><3>
프로젝트 개요 및 각 글들의 링크: https://namth.tistory.com/18
이번 글에는 고정된 IP와 도메인을 구매, 연결하였으니 이제 ssl을 설정하려고 한다.
서버는 nginx을 사용하였고, ssl 인증서 발급은 letsencrypt을 사용하였다.(nginx + letsencrypt)
NGINX
Nginx 설치
ssl인증서를 발급 전 nginx을 설치한다.
# 패키지 리스트 업데이트
sudo apt update
# nginx 설치
sudo apt install nginx
# nginx 상태 확인
systemctl status nginx
Nginx 리버스 프록시 설정
구입한 도메인의 특정 경로로 http 요청이 올 때, 미리 생성한 주식 뉴스 서버에게 요청을 전달하도록 Nginx을 설정한다.
1. 서버 블록 작성
주식 뉴스 서버로 요청을 전달할 서버 블록을 작성한다.
2. 서버 블록 생성
해당 파일을 /etc/nginx/sites-available 아래에 생성한다.
( /etc/nginx/sites-available/mysite.conf )
생성한 파일을 /etc/nginx/sites-enabled으로 심볼릭 링크를 생성한다.
( /etc/nginx/sites-enabled/mysite.conf )
# 심볼릭 링크 생성
sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf
3. 서버 블록 적용
/etc/nginx/nginx.conf 파일을 수정한다.
생성한 서버 블록 설정 파일을 nginx 설정에서 include를 사용해서 로드한다.
4. 테스트
잘 적용되었는지 확인을 위해 nginx를 종료 후 다시 동작시키기보다는 'nginx -t'을 사용해서 검증을 진행한다.
아래와 같이 문구가 나왔다면 문법에 문제없이 작성된 것이다.
이제 설정을 적용시키면 된다.
# 설정파일 load
sudo systemctl reload nginx.service
설정한 url로 접속을 하면 아래와 같이 나온다면 잘 설정이 된 것이다.
SSL
1. letsencrypt 설치
letsencrypt설치를 위해 저장소를 추가한다.
# 저장소 추가
sudo apt-add-repository -r ppa:certbot/certbot
그 후 설치를 진행한다.
# letsencrypt 설치
sudo apt install python-certbot-nginx
2. letsencrypt 실행
letsencrypt를 nginx와 연동해서 실행시키기 위해서 아래와 같이 입력을 한다.
# --nginx: nginx와 같이 사용
# --email: 사용자 이메일
# -d: 적용시킬 도메인
sudo certbot --nginx --email example@example.com -d www.domain.com
이미 진행을 해버린 상태라 진행 사진이 없어는 관계로 설명만 적기로 했다.
- 약관 동의: 동의해야지 사용 가능하므로 y 선택
- 이메일 사용 여부: 개인에 따라서 선택
- Http 요청 리다이렉트: 개인에 따라서 선택
http -> https: 리다이렉트 없음: 기존 서버 설정에 변화가 없으며, 해당 도메인으로 접근 시 Https로만 접근이 가능해진다.
http -> https: 리다이렉트 설정: 기존 서버 설정에 변화를 주며, http 요청을 https으로 리다이렉트 하게 된다. - 인증 유효기간 확인: 아마도 90일로 유효기간을 알려줄 것이다.
설정 이미지 및 설명 링크
https://www.sunny-son.space/AWS/HTTPS%20%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/
3. 테스트
Nginx테스트처럼 해당 사이트에 접근을 해본다.
이전에는 http로 설정되어 있어서 경고가 있었다면
이제는 경고가 사라진것을 확인할 수 있다.
다음 글
데이터 베이스들을 설치 및 설정하는 글을 작성할 예정이다.
# 2022.09.30 수정
'프로젝트 > 주식뉴스분석' 카테고리의 다른 글
주식 뉴스 프로젝트 Flask 서버 (0) | 2022.10.02 |
---|---|
AWS EC2 Mysql, MongoDB 설치 (1) | 2022.09.30 |
AWS EC2 IP고정(탄력적IP) 및 도메인 등록 및 연결 (2) | 2022.09.28 |
AWS EC2 인스턴스 생성 및 접속하기 (2) | 2022.09.26 |
구글 클라우드 빌드(GCP build + GitHub)을 사용한 지속적 배포(CD) (0) | 2022.09.26 |