728x90
반응형
S3와 Docker 없이 동일한 EC2에 FastAPI, SpringBoot 배포하기
1. 동일한 EC2에 FastAPI, Spring Boot 프로젝트 git clone
2. 동시 배포(Nginx)
nginx를 reverse proxy server로 활용
- 클라이언트 요청 -> 백엔드 서버(Spring Boot/ FastAPI)로 전달
- / 백엔드 서버로부터 받은 응답 -> 클라이언트에 반환
nginx 설치
$ sudo apt-get update
$ sudo apt-get install nginx
설정 파일 생성 및 편집
// sudo vi /etc/nginx/sites-available/{프로젝트명}.conf
sudo vi /etc/nginx/sites-available/tusori.conf
설정 파일 내용
server {
// nginx가 80번 포트에서 HTTP 요청 수신
listen 80;
server_name {탄력적 IP};
location /springBoot/ {
proxy_pass http://localhost:8080/;
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;
}
location /fastapi/ {
proxy_pass http://localhost:8000/;
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;
}
}
설정 파일 활성화 -> 심볼릭 링크 생성
// sudo ln -s /etc/nginx/sites-available/{프로젝트명}.conf /etc/nginx/sites-enabled/{프로젝트명}.conf
sudo ln -s /etc/nginx/sites-available/tusori.conf /etc/nginx/sites-enabled/tusori.conf
*심볼릭 링크: 특정 파일이나 디렉토리에 대한 참조(포인터) 역할
실제 파일: sites-available 디렉토리에 위치 But, sites-enabled 디렉토리에서 참조
3. 설정 적용 및 nginx 재시작
설정 테스트
sudo nginx -t
nginx 다시 로드 -> 변경사항 적용
sudo systemctl reload nginx
nginx 재시작
sudo systemctl restart nginx
참고
728x90
반응형