[백엔드] Nginx - Gunicorn - Flask연결
GCP에서 Nginx - Gunicorn -Flask를 연결하는 것이 목표이다!
유저이름@인스턴스 이름 :~$ sudo apt update
패키지 업데이트 위한 작업
유저이름@인스턴스 이름 :~$gsutil -m cp -r gs://버킷이름 /복사할 경로
버킷 내용을 인스턴스에 복사한다.유저이름@인스턴스 이름 :~$ sudo apt install nginx
nginx를 설치한다.(가상환경)유저이름@인스턴스 이름 :~$ cd ~/버킷
가상환경을 활성화 한 후 버킷으로 이동한다.(가상환경)유저이름@인스턴스 이름 :~/버킷$ pip install Flask
Flask를 설치한다.유저이름@인스턴스 이름 :~$cd /etc/nginx/sites-available
nginx의 설정파일을 작성하기 위해 이동한다.유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo cp default 파일이름.server
기본 default파일을 서버파일을 위해 복사한다.유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo vi 파일이름.server
서버 파일을 작성한다. 이때, 서버 이름은 외부ip 혹은 고정 ip로 작성한다. proxy_pass를 gunicorn.sock파일과 연결시킨다.유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo rm /etc/nginx/sites-enabled/default
기본 파일을 삭제해준다.유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo ln -s /etc/nginx/sites-available/파일이름.server /etc/nginx/sites-enabled/default
nginx가 운영되기 위한 설정파일을 우리가 설정한 파일로 대체해준다.유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo nginx -t
설정파일을 바꿔줬기 때문에 제대로 작동하는지 확인하는 과정이다.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
결과가 나와야한다.유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo systemctl start nginx
nginx를 시작한다유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo systemctl status nginx
nginx의 상태를 확인한다.(가상환경)유저이름@인스턴스 이름:~/버킷$export FLASK_APP=app
flask run을 실행한 경로에서 사용할 Flask앱 이름을 설정한다. app.py파일의 제목을 사용하였기 때문에 app으로 작성하였다.(가상환경)유저이름@인스턴스 이름:~/버킷$export FLASK_ENV=development
서버 환경을 설정한다.(가상환경)유저이름@인스턴스 이름:~/버킷$flask run -p 40446
flask를 실행하여 40446포트로 들어가본다.(가상환경)유저이름@인스턴스 이름:~/버킷$gunicorn --bind unix:/tmp/파일이름.sock app:app
gunicorn을 sock파일로 연결시켜준다.(가상환경)유저이름@인스턴스 이름:/etc/systemd/system$sudo vi 파일이름.service
서버를 가동시키면 자동으로 gunicorn이 작동하도록 service파일을 작성한다.(가상환경)유저이름@인스턴스 이름:/etc/systemd/system$sudo systemctl enable service파일이름
서비스 파일을 실행시킨다.
전체적인 흐름에 대해서 정리해보았다. 추후 자세히 풀어나갈 예정이다.
Subscribe to my newsletter
Read articles from Soyulia directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by