flask 개발 api - flask 배치, gunicorn + gevent 모드 를 사용 한 http server

flask 개발 api - flask 배치, gunicorn + gevent 모드 를 사용 한 http server
fllask 로 서버 의 api 를 개발 하여 서버 배치 과정 을 기록 하여 후속 적 으로 사용 할 수 있 도록 합 니 다.
python 3.5 설치
자체 서버 에 python 3 가 설치 되 어 있 고 버 전 은 3.5 입 니 다. 여 기 는 다시 설치 되 지 않 습 니 다. 서버 에 python 3 가 설치 되 어 있 지 않 으 면 설치 합 니 다.
$ sudo apt-get install python3.5

pip 3 설치
우 리 는 pip 로 제3자 모듈 을 사용 해 야 하 며, 먼저 pip 를 설치 해 야 한다.
#       
$ curl -O https://bootstrap.pypa.io/get-pip.py

#   
sudo python3 get-pip.py 

설치 성공 후 설치 버 전 을 보고 현재 python 3 버 전과 일치 하 는 지 확인 하 십시오.
$ pip3 -V

//       
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)

virtualenv 설치
모든 프로젝트 에 필요 한 환경 이 다 를 수 있 습 니 다. 전체 서버 환경 에 영향 을 주지 않도록 저 희 는 모든 프로젝트 에 독립 적 인 운영 환경 을 주 고 virtualenv 를 사용 해 야 합 니 다.
$ sudo pip3 install virtualenv 

//      ,   
Successfully installed virtualenv-15.1.0

가상 환경 만 들 기
$ cd /var/www/your_project_name

#       ,  py35env          
$ virtualenv -p python3 py35env

#           
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /var/www/your_project_name/py35env/bin/python3
Also creating executable in /var/www/your_project_name/py35env/bin/python
Installing setuptools, pip, wheel...done.

#       
$ source py35env/bin/activate

#                    ,  :
(py35env) ubuntu@ip-10-0-0-119:/var/www/your_project_name$

#         ,        python       ,         
$ sudo pip3 list

설치 항목 에 필요 한 python 모듈
1. Flask 설치
$ pip3 install Flask 

#          :
Successfully installed Flask-0.12.2 Werkzeug-0.12.2 click-6.7 itsdangerous-0.24
#     sudo pip3 list   

2. Flask - RESTful 설치
$ pip3 install Flask-RESTful

#          :
Successfully installed Flask-RESTful-0.3.6 aniso8601-1.3.0 python-dateutil-2.6.1 pytz-2017.2
#     sudo pip3 list   

3. pyMySQL 설치
$ pip3 install pyMySQL

#          :
Successfully installed pyMySQL-0.7.11
#     sudo pip3 list   

4. gunicorn 설치
$ pip3 install gunicorn

#          :
Successfully installed gunicorn-19.7.1
#     sudo pip3 list   

#   gunicorn       
$ sudo mkdir /var/log/gunicorn
#     
$ sudo chmod -R 777 /var/log/gunicorn

5. gevent 설치
$ pip3 install gevent

#          :
Successfully installed gevent-1.2.2 greenlet-0.4.12
#     sudo pip3 list   

설치 항목
프로젝트 를 복제 하 다
$ git clone [email protected]/your_project_name.git

프로젝트 에 들 어가 서 gunicorn 이 올 바 르 게 작 동 하 는 지 테스트 합 니 다.
$ cd your_project_name

#             
$ sudo chmod -R 777 logs

$ gunicorn -b 0.0.0.0:5000 manager:app
#       :
[2017-10-20 09:44:48 +0000] [21856] [INFO] Starting gunicorn 19.7.1
[2017-10-20 09:44:48 +0000] [21856] [INFO] Listening at: http://0.0.0.0:5000 (21856)
[2017-10-20 09:44:48 +0000] [21856] [INFO] Using worker: sync
[2017-10-20 09:44:49 +0000] [21859] [INFO] Booting worker with pid: 21859

#    ,           
# crtl+c  

슈퍼 바 이 저 를 데 몬 으로 설치 하기
gunicorn 은 제어 판 이 닫 힌 후에 도 프로 세 스 가 종료 되 기 때문에 슈퍼 바 이 저 를 사용 하여 배경 데 몬 을 해 야 합 니 다.
가상 환경 종료
$ deactivate

서버 에 슈퍼 바 이 저 를 설치 하지 않 으 면 먼저 설치 합 니 다.
$ sudo apt-get install supervisor

슈퍼 바 이 저 프로필 추가
$  cd /etc/supervisor/conf.d
#       
$ sudo touch your_project_name.conf
#   
$ sudo vi your_project_name.conf

#     
[program:your_project_name]
command=/var/www/your_project_name/py35env/bin/gunicorn manager:app -c /var/www/your_project_name/your_project_name/gun.py
directory=/var/www/your_project_name/your_project_name
autostart=true
autorestart=true
stdout_logfile=/var/log/gunicorn/gunicorn_supervisor.log
stderr_logfile=/var/log/gunicorn/gunicorn_supervisor_err.log

관리자 업데이트
$ sudo supervisorctl update
#              
your_project_name: added process group

#            
$ sudo supervisorctl stop your_project_name
#      
$ sudo supervisorctl start your_project_name

좋은 웹페이지 즐겨찾기