[백엔드] Nginx - Gunicorn - Flask연결

SoyuliaSoyulia
2 min read

GCP에서 Nginx - Gunicorn -Flask를 연결하는 것이 목표이다!

  1. 유저이름@인스턴스 이름 :~$ sudo apt update

    패키지 업데이트 위한 작업

  2. 유저이름@인스턴스 이름 :~$gsutil -m cp -r gs://버킷이름 /복사할 경로
    버킷 내용을 인스턴스에 복사한다.

  3. 유저이름@인스턴스 이름 :~$ sudo apt install nginx
    nginx를 설치한다.

  4. (가상환경)유저이름@인스턴스 이름 :~$ cd ~/버킷
    가상환경을 활성화 한 후 버킷으로 이동한다.

  5. (가상환경)유저이름@인스턴스 이름 :~/버킷$ pip install Flask
    Flask를 설치한다.

  6. 유저이름@인스턴스 이름 :~$cd /etc/nginx/sites-available
    nginx의 설정파일을 작성하기 위해 이동한다.

  7. 유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo cp default 파일이름.server
    기본 default파일을 서버파일을 위해 복사한다.

  8. 유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo vi 파일이름.server
    서버 파일을 작성한다. 이때, 서버 이름은 외부ip 혹은 고정 ip로 작성한다. proxy_pass를 gunicorn.sock파일과 연결시킨다.

  9. 유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo rm /etc/nginx/sites-enabled/default
    기본 파일을 삭제해준다.

  10. 유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo ln -s /etc/nginx/sites-available/파일이름.server /etc/nginx/sites-enabled/default
    nginx가 운영되기 위한 설정파일을 우리가 설정한 파일로 대체해준다.

  11. 유저이름@인스턴스 이름 :/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
    결과가 나와야한다.

  12. 유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo systemctl start nginx
    nginx를 시작한다

  13. 유저이름@인스턴스 이름 :/etc/nginx/sites-available$sudo systemctl status nginx
    nginx의 상태를 확인한다.

  14. (가상환경)유저이름@인스턴스 이름:~/버킷$export FLASK_APP=app
    flask run을 실행한 경로에서 사용할 Flask앱 이름을 설정한다. app.py파일의 제목을 사용하였기 때문에 app으로 작성하였다.

  15. (가상환경)유저이름@인스턴스 이름:~/버킷$export FLASK_ENV=development
    서버 환경을 설정한다.

  16. (가상환경)유저이름@인스턴스 이름:~/버킷$flask run -p 40446
    flask를 실행하여 40446포트로 들어가본다.

  17. (가상환경)유저이름@인스턴스 이름:~/버킷$gunicorn --bind unix:/tmp/파일이름.sock app:app
    gunicorn을 sock파일로 연결시켜준다.

  18. (가상환경)유저이름@인스턴스 이름:/etc/systemd/system$sudo vi 파일이름.service
    서버를 가동시키면 자동으로 gunicorn이 작동하도록 service파일을 작성한다.

  19. (가상환경)유저이름@인스턴스 이름:/etc/systemd/system$sudo systemctl enable service파일이름
    서비스 파일을 실행시킨다.

전체적인 흐름에 대해서 정리해보았다. 추후 자세히 풀어나갈 예정이다.

0
Subscribe to my newsletter

Read articles from Soyulia directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Soyulia
Soyulia