Nginx란 무엇인가?
-프론트엔드 코드 Vercel에 배포하기
내가 원하는 도메인을 무료 버전으로 하려면 .vercel.app을 넣어줘야 한다
WEST_COLD (westcold.vercel.app)
-도메인 구매하기
아래 영상 참고
카페24 쇼핑몰 도메인 구매부터 적용까지 (도메인 가격비교, 네임서버 변경 방법) (youtube.com)
-Nginx 가 무엇인지 검색하고 ec2 서비스에 설치하기
nginx는 내 컴퓨터가 서버가 되게 해주는 소프트웨어
-클라이언트와 WAS사이에서 서빙 및 매니징을 담당하는 역할을 수행
-정적인 요소를 was에 넘어가기 전 미리 서빙해줌
was란
서버의 동적인 요소를 전문적으로 처리해주는 서버.
Nginx를 사용하는 이유:
1. 리버스 프록시(보안 강화): Nginx는 보안을 강화하는 역할을 한다. 클라이언트와 직접 통신하는 대신 Nginx를 통해 요청을 받아들이면 서버의 IP 주소를 숨길 수 있어 보안을 강화할 수 있다( 한마디로 말하면 클라이언트는 가짜 서버에 요청(request)하면, 프록시 서버가 배후 서버(reverse server)로부터 데이터를 가져오는 역할을 한다 )
2. 로드 밸런싱(부하 분산): Nginx는 요청을 여러 백엔드 서버로 분산하여 부하를 분산할 수 있다. 이를 통해 서버의 안정성과 성능을 향상시킬 수 있다.
3. 캐싱(정적 파일 서빙): Nginx는 정적 파일(HTML, CSS, JavaScript 등)을 효과적으로 서빙하는 데 사용된다. 이렇게 하면 백엔드 서버가 동적 콘텐츠에만 집중할 수 있고, 정적 파일 서빙은 Nginx가 처리하게 된다.(vercel로 프론트엔드 파일을 처리햇으니 3번은 굳이 지금은 필요없긴 하다)
4.SSL지원: 클라이언트와 HTTPS로 통신하고, 백엔드 서버와 HTTP로 통신하여 보안을 강화하는 역활을 한다.
*설치하기
ec2인스턴스 연결로 들어감
nginx를 업데이트하고 설치함
sudo apt update
sudo apt install nginx -y
nginx를 시작하고 부팅 시 자동으로 시작되도록 설정
sudo systemctl start nginx
sudo systemctl enable nginx
nginx 상태를 확인
sudo systemctl status nginx
public ip로 접속해보기
->aws ip주소 입력을 웹브라우저에 했을때 nginx 웰컴페이지가 떠야한다
-ec2에 파이썬 코드 업로드
git clone https://github.com/your-username/your-repo.git (나중에 업데이트는 git pull origin main)
(github에 올라온 파이썬 코드 pull로 받아오기)
nano .env
(.env파일 업로드)
sudo apt update
sudo apt install python3-pip python3-venv -y (파이썬 설치)
python3 -m venv venv(가상 환경 설정)
source venv/bin/activate(가상 환경 활성화)
pip install -r requirements.txt (ex openai같은 모듈 설치)
python your_script.py (코드 실행)
#나중에 가져올때
git init
git commit -m""
git pull origin main
-nginx에서 포트포워딩 설정(aws ip주소를 입력하면 80번 포트가 5000번 포트로 가게끔 처리)
sudo nano /etc/nginx/sites-available/default
아래 처럼 수정해줌
server {
listen 80 ;
listen [::]:80 ;
server_name _;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Nginx 서비스를 재시작하여 변경 사항을 적용.
sudo systemctl restart nginx