-
라즈베리파이에 Nginx + uWSGI + Flask 설치하기.Python/Flask 2019. 8. 18. 15:04반응형
1. 라즈베리 파이에 raspbian 설치
다운로드 링크 : https://www.raspberrypi.org/downloads/raspbian/
지금 현재 가장 최신 버전 2019-07-10 설치.
용량에 따라 3가지 버전이 있음.
데스크탑 환경이 편한 취미 개발자이며, 추천 소프트웨어까지는 필요 없을 듯 하여 Raspbian Buster with desktop 사용.
마이크로 SD 카드는 8기가 이용. rufus를 이용해 카드에 라이팅함.
2. 내장된 파이썬 버전 확인
pi@raspberrypi:~ $ python3 -V Python 3.7.3
최신 버전이라 업그레이드는 패스.
붙여넣기 단축키: ctrl + shift + v
3. pip 업그레이드 (필요 없음)
pi@raspberrypi:~ $ sudo pip3 install --upgrade pip
또는
pi@raspberrypi:~ $ sudo python3 -m pip install --upgrade pip
4. 소스 폴더에 가상환경 생성
python3 -m virtualenv venv
또는
virtualenv venv
5. virtualenv 실행
. venv/bin/activate
6. 플라스크 설치 (venv 실행 후라...)
pip install flask
7. uWSGI 설치
pip install uWSGI
8. 설치 확인
pip list
9. nginx 설치
sudo apt install nginx
10. test.py 파일 작성
# test.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
11. test.py 파일 실행
venv 상에서 python3 test.py
12. curl로 확인
curl http://127.0.0.1:5000
13. uwsgi 실행
콜러블에 app = Flask(__name__) 에서 지정한 앱이름을 넣어야 한다. (application이면 생략가능.)
uwsgi --socket 0.0.0.0:5000 --protocol=http --wsgi-file test.py --callable app --processes 4
14. 5000번 포트로 확인
15. uwsgi 실행시 명령어가 너무 길다.
myproject/uwsgi.ini 파일을 만들어서 관리하면 편리하다.
[uwsgi] module = test:app master=true processes=4 socket = test.sock chmod-socket = 666 vacuum = true die-on-term = true
16. ngnix default 파일 설정
$ sudo nano /etc/nginx/sites-available/default
server { listen 80; server_name server_domain_or_IP; location / { try_files $uri @app; } location @app { include uwsgi_params; uwsgi_pass unix: /home/pi/www/test/test.sock; } }
[설정코드 ; 빠트리지 말 것]
17. nginx 재구동
$ sudo /etc/init.d/nginx restart
18. uwsgi 실행
pi@raspberrypi:~/www/test $ uwsgi --ini uwsgi.ini
-----------
왠지 모르게 힘들었다 ㅠ,.ㅠ
반응형