새소식

이것저것 개발노트

FastAPI 웹 배포 AWS 고정 IP, NginX

  • -

 

FastAPI는 http://127.0.0.1:8000

 

 

 

install nginx

 

sudo apt-get update
sudo apt-get install nginx
sudo systemctl start nginx

 

/etc/nginx/sites-available 내 file에 쓰기 권한이 없으므로 chmod를 쓰기 권한을 추가해준다.

sudo chmod 775 /etc/nginx/sites-available

 

 

nginx config 추가: cd /etc/nginx/sites-available && vim <설정파일>.conf 

예) vim conect.conf

server {
        listen 80;
        server_name <ip 또는 domain>;

		location / {
			include proxy_params;
			proxy_pass http://127.0.0.1:8000;
		}
}

 

예)

<ip 또는 domain>: http://52.79.175.22:8000

 

 

server {
        listen 80;
        server_name http://52.79.175.22:8000;

		location / {
			include proxy_params;
			proxy_pass http://127.0.0.1:8000;
		}
}

 

심볼릭 링크 생성

앞서 /etc/nginx/sites-available/ 경로에 설정 파일을 작성하였는데요,
이 폴더에 여러 설정파일들을 생성해 두고, 이 중 활성화하고 싶은 설정만을 선택하여 이용합니다.
이를 위해 심볼릭 링크 (symlink) 기능을 이용하여
설정 파일을 /etc/nginx/sites-enabled 폴더에 동기화합니다.

심볼릭 링크는 파일이나 디렉터리에 대한 참조를 나타내는 특별한 유형의 파일로,
링크된 파일이나 디렉터리에 대한 경로를 가리키기 때문에 다른 파일이나 디렉터리로의 간편한 접근을 제공합니다.

심볼릭 링크를 생성하려면 ln -s 명령어를 사용할 수 있으며,

 

ln -s /원본/파일/경로 /링크/될/경로

 

이렇게 하면 /링크/될/경로 위치에 심볼릭 링크가 생성되며,
이 링크를 통해 원본 파일 또는 디렉터리에 쉽게 액세스할 수 있습니다.

 

symlink: sites-available/<server-name> → sites-enabled

sudo ln -s /etc/nginx/sites-available/fastapi.conf /etc/nginx/sites-enabled/fastapi.conf

 

 

 

4. 설정 테스트

설정 파일이 오류 없이 작성되었는지 테스트합니다.

sudo nginx -t

 

5. NginX 서비스 시작 (재시작)

sudo systemctl restart nginx

 

6. uvicorn 서비스 시작

uvicorn 서버를 실행중인 터미널이 종료되면 서버와의 연결이 끊어지기 때문에 nohub으로 문제 해결 

nohup 명령어를 이용하여 uvicorn 을 지속적으로 실행

 

다시 프로젝트 디렉터리 위치로 이동후 아래 명령어

nohup uvicorn main:app --reload &

 

 

 

gunicorn으로 ASGI 서버 실행

 

gunicorn --bind 0:8000 app.main:app --worker-class uvicorn.workers.UvicornWorker

 

 

 

https://roseline.oopy.io/dev/gunicorn-nginx-fastapi-deploy-on-lightsail

 

가장 빠른 머신러닝 앱 배포하기 | fastapi, gunicorn, nginx

가볍고 빠르게 구축하거나 실행할 수 있는 모듈들로 머신러닝 앱을 배포해보자.

roseline.oopy.io

 

https://velog.io/@judy_choi/%EB%B0%B0%ED%8F%AC-8.-NginX-Gunicorn

 

[배포] 8. NginX & Gunicorn

팀 프로젝트에서 저는 백엔드 및 AI 개발을 맡았고,FastAPI 와 python 을 이용해 백엔드 서버 개발을 마쳤습니다.이제 클라우드 담당 팀원으로부터 전달받은 서버 인스턴스에 개발한 백엔드 코드를

velog.io

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.