Nginx와 Gunicorn으로 Flask앱 배포하기(2)
5. Gunicorn을 Nginx와 연결시키기
5-1. 들어가기 전에
우선 nginx의 디렉토리 구조를 이해할 필요가 있다.
나도 자세히는 이해하지 못했기 때문에 우선 이해한 만큼만 적어본다.
여기서는 두 개만 알면 된다.
- /etc/nginx/sites-available/ : 여기서 설정 파일을 만들어서 수정한다.
- /etc/nginx/sites-enabled/ : sited-available 디렉토리의 설정 파일이 이 디렉토리의 파일과 link되어 nginx에 적용된다.
정리하자면, 설정파일을 우리가 생성하고 수정할 때는 sites-available에 있는 파일을 건드리고 sites-enabled의 파일은 직접 건드리지 않는다.
그런데 nginx는 sites-enabled를 찾아보지 sites-available을 찾아보지 않는다.
그래서 sites-available에서 수정한 파일을 sites-enable의 파일과 링크시켜서 수정 사항이 반영되도록 한다.
(그런데 참고한 영상에서는 바로 sites-enabled의 파일을 수정하던데 별 상관 없는건가 싶기도 하다)
5-2. nginx의 설정 파일 생성하기
/etc/nginx/sites-available/에 새 설정 파일을 만들어준다.
a. 기존의 파일(default)을 삭제하고 내 것(myflask)으로 다시 만들어준다.
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default
sudo touch /etc/nginx/sites-available/myflask
b. 에디터로 열어서 다음의 내용을 작성하고 저장한다.
sudo nano /etc/nginx/sites-available/myflask
로 파일을 열어준다.
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 0.0.0.0;
location / {
include proxy_params;
proxy_pass http://unix:/home/sammy/myproject/myproject.sock; // gunicorn service 파일에서 socket 파일의 경로
}
}
내 경우 proxy_pass는 http://unix:/home/userme/myproject/myflask.sock
이다.
5-3. sites-available의 파일과 sites-enabled의 파일을 연결시키기
두 디렉토리의 서로 다른 파일 사이에 심볼릭 링크를 생성해서 연결시키는 작업을 해준다.
sudo ln -s /etc/nginx/sites-available/myflask /etc/nginx/sites-enabled/myflask
ln : link, -s : symbolic
5-4. 마무리 작업
마지막으로 해당 설정 파일에 문법 오류가 없는지 체크하고, 아무 문제가 없으면 nginx를 재시작한다.
sudo nginx -t // 문법 오류 체크
sudo systemctl restart nginx
5-5. 접속해서 확인하기
이제 원격 IP 주소로 접속해서 잘 뜨는지 확인하면 끝!
5-6. 정상 작동하지 않는다면
만약 여기서 잘 안되면 방화벽을 확인해보자. 가상머신의 네트워킹도 확인해보면서 이것저것 시도해보자!
sudo ufw app list
sudo ufw allow 'Nginx Full' // HTTP, HTTPS 모두 접근 허용
sudo ufw status
Author And Source
이 문제에 관하여(Nginx와 Gunicorn으로 Flask앱 배포하기(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jimin_lee/Nginx와-Gunicorn으로-Flask앱-배포하기2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)