https://soccerda.tistory.com/210
이전 글을 통해서 nginx, uWSGI, Flask로 웹서버를 구축해보았다.
uWSGI를 gunicorn으로 대체해보도록 하겠다.
gunicorn은 uWSGI에 비해 가볍다.
서버 사양이 좋지 않다면 gunicorn을 사용하는 것을 추천한다.
우선 가상환경에 들어가서 설치하자.
(venv) pip install gunicorn
first.py , wsgi.py 파일이 존재해야 한다. 없다면 이전 (https://soccerda.tistory.com/210) 글을
gunicorn --bind 0.0.0.0:5000 wsgi:app
가상 환경에서 나오자
(venv) deactivate
다음으로는 서비스를 등록해서 자동으로 앱이 실행될 수 있도록 설정을 하자.
cd /etc/systemd/system
sudo nano myproject.service
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=pi
Group=www-data
WorkingDirectory=/home/pi/www/myproject
Environment="PATH=/home/pi/www/myproject/venv/bin"
ExecStart=/home/pi/www/myproject/venv/bin/gunicorn --workers 3 --bind unix:first.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
저장된 파일을 서비스에 등록
pi@raspberrypi:/etc/systemd/system $ sudo systemctl start myproject
pi@raspberrypi:/etc/systemd/system $ sudo systemctl enable myproject
nginx 설정
cd /etc/nginx/sites-available
sudo nano gunicornconfig
server {
listen 80;
server_name localhost;
location / {
include proxy_params;
proxy_pass http://unix:/home/pi/www/myproject/first.sock;
}
}
소프트링크
sudo ln -s /etc/nginx/sites-available/gunicornconfig /etc/nginx/sites-enabled/
/etc/nginx/sites-enabled/ 에 다른 파일이 있으면 삭제하자.
sudo service nginx restart
'Server > Linux' 카테고리의 다른 글
리눅스 (ec2) crontab 시간차이 문제 (1) | 2021.11.26 |
---|---|
라즈베리파이 웹서버 구축(nginx, uWSGI , Flask, Python) (0) | 2021.05.13 |
외부에서 로컬 서버에 접속하는 방법 (ngrok, localtunnel, localhost.run) (0) | 2021.05.13 |
SSL 인증서 만료일 확인 (0) | 2019.07.11 |
리눅스 서버 상태 파악하기 (0) | 2019.06.14 |