2020년 8월 6일 목요일

시놀로지 나스에서 플라스크 백그라운드로 돌리기

시놀로지 nas에서 도커를 설치하고 ubuntu 이미지를 다운로드후
로컬호스트설정 <- 포트포워딩 개념을알면 똑같이 적용됨
볼륨도 nas 특정폴더 -> 내부 우분투 폴더로 매핑가능함

nas 내부에서 ssh 로 접속해서 파이썬 설치하고 어쩌고하는것보다 깔끔함
db는 개인적인생각이지만 분리해서 nas 자체가 가지고 있는게 좋아보임
뭐 그때그때 다르지만.. 서도..

간단히 테스트용

---------------------------------------------------------------------------

apt-get update  : 업데이트 작업
apt-get install net-tools : 네트워크명령어 설치
apt-get install vi : vim 에디터 설치(vim으로 수정하는거 싫지만 터미널 이기때문에 어쩔수없음 vi와 vim 은 다르지만서도..   그냥 터미널 메모장이자나 스봉 -_-)

(vim 설치안되면

apt-get update

apt-get install apt-file

apt-file update

apt-get install vim

해볼것!!)


apt-get install openssh-server : ssh 서비스 설치인데.. 이과정에서 파이썬3가 설치되는거 같은?


vi /etc/ssh/sshd_config : vim으로 들어가서 PermitRootLogin yes로 변경 #지우고


service ssh start : ssh 서비스 실행(아까 로컬호스트에서 설정한포트로 들어가짐

service --status-all  으로 실행중인지 확인해볼것)


ssh접속해서 해당디렉토리에서 (ls해보면 없는데 cd .. 으로 한수준 뒤로 갈것)
nas에 바인딩된 볼륨폴더로 가서

nohup python3 aaa.py

하고 ssh 종료하고


flask 를 종료할때

sudo -i    <-  루트권한 종료할때는 exit  도커터미널에서는 굳이안해도됨

ps -ef | grep python  <- 파이썬으로 실행중인 프로세스 찾기

kill -9 PID   <- 해당 pid로 프로세스종료


리얼루다가 배포할때는 아래처럼 uwgi 깔고 nginx 깔고 바인드 시켜야함
요건 간단하게 할때쓰는거임


------------------------------------------------------------------------

[Docker Ubuntu+NGINX+uWSGI+flask]

$ docker run -p 8080:8080 -it --name flask -v /home/docks/flask:/var/www/html ubuntu


# apt-get update

# apt-get upgrade

# apt-get install vim

# apt-get install net-tools

# apt-get install nginx # Nginx

# apt-get install uwsgi # uWSGI

# apt-get install uwsgi-plugin-python3 # python과 uWSGI를 연결하는 플러그인


# apt-get install python3

# apt-get install python3-pip python3-dev

# pip3 install -U pip


# pip3 install virtualenv


# cd /var/www/html

# virtualenv service

# cd service

# . bin/activate

# pip3 install flask

# pip3 install uwsgi


# cd /var/www/html/service

# vi app.py

---

from flask import Flask


app = Flask(__name__)


@app.route('/')

def hello_world():

    return 'Hello World!'


if __name__ == '__main__':

    app.run()

---


# vi /etc/nginx/sites-available/default

---

server {

   listen 8080; # 연결할 포트

   server_name 0.0.0.0;

   location / { try_files $uri @app; }

   location @app {

     include uwsgi_params;

     uwsgi_pass unix:/tmp/uwsgi.sock;

   }

}

---


# vi /etc/uwsgi/apps-available/uwsgi.ini

---

[uwsgi]

chdir=/var/www/html/service

chmod-socket=666

callable=app

module=app

socket=/tmp/uwsgi.sock

virtualenv=/var/www/html/service

---


# service nginx restart

# service uwsgi restart


# uwsgi /etc/uwsgi/apps-available/uwsgi.ini



--- 결론적으로 다가 위에것들을 다해놓은 도커이미지를 찾는게 더빠른? -_-;;

아니면 시놀로지에서 php처럼 전폭적인 지원으로 돌아가게 되는 

python3+flask 엔진을 만들어 주면 땡큐하다..  하지만

그냥 내가 php를 배워서 배포하는게 더 빠르다는것은 함정..




댓글 없음:

댓글 쓰기