Ubuntu

Ubuntu 18.04 Python(Flask + uWSGI + Nginx)으로 Web 서버 구축

지오준 2021. 2. 24.
반응형

Python Web서버 구축 순서

①Python 라이브러리 설치

$ sudo apt install python3-venv python3-dev

②프로젝트 폴더 만들기

$ mkdir ~ / 프로젝트 명 ⇒ 프로젝트 폴더 만들기

$ cd ~ / 프로젝트 명 ⇒ 프로젝트 폴더 선택

③가상 환경 설정

$ python3 -m venv env ⇒ Python 실행 환경을 만들

$ source env / bin / activate ⇒ bin / activate 스크립트를로드

$ pip install uwsgi flask ⇒ uwsgi, flask 설치

④서버 실행 파일 만들기

$ sudo nano /프로젝트 폴더 이름/server.py

from flask import Flask

app = Flask (__ name__)

@ app.route ( "/")

def testserver () :

return "<h1 style = 'color : blue'> Hello python + uwsgi + flask Server! </ h1>"

if __name__ == "__main__":

app.run (host = '0.0.0.0')

⑤wsgi 실행 파일 만들기

$ sudo nano /프로젝트 폴더 이름/wsgi.py

from server

import app

if __name__ == "__main__":

app.run ()

⑥서버 설정 파일 생성

$ sudo nano /프로젝트 폴더 이름/server.ini

[uwsgi]

module = wsgi :

app master = true

processes = 1

socket = server.sock

chmod-socket = 666

vacuum = true

die-on-term = true

touch-reload = server.py

pythonpath = 프로젝트 폴더 경로

⑦Ubuntu 서비스 등록

$ sudo nano /etc/systemd/system/프로젝트 이름.service

[Unit]

Description = 프로젝트 설명

After = network.target

[Service]

User = <Ubuntu 사용자 이름>

Group = www-data

WorkingDirectory = /home/<Ubuntu 사용자 이름>/프로젝트 이름

Environment = "PATH =/home/<Ubuntu 사용자 이름>/프로젝트 명/env/bin"

ExecStart = /home/<Ubuntu 사용자 이름>/프로젝트 명/env/bin/uwsgi --ini server.ini

[Install]

WantedBy = multi-user.target

⑧Ubuntu 서비스 다시 시작

$ sudo systemctl start 프로젝트 명 ⇒ 프로젝트 서비스 시작

$ sudo systemctl enable 프로젝트 명 ⇒ 프로젝트 서비스 활성화

$ sudo systemctl status 프로젝트 명 ⇒ 프로젝트 서비스 상태 확인

⑨Nginx 설치

$ sudo apt-get install nginx ⇒ Nginx 서버 설치

$ nginx -v ⇒ Nginx 서버 버전 확인

$ sudo service nginx start ⇒ Nginx 서버 시작

⑩Nginx 서버 프로젝트 서비스 설정 ①

$ sudo nano /etc/nginx/sites-available/프로젝트 이름

server {

          listen 80;

          server_name 도메인 주소 또는 IP 주소;

          location / {

                          include uwsgi_params;

                          uwsgi_pass unix : /home/<Ubuntu 사용자 이름>/프로젝트 이름/server.sock;

                       }

        }

⑪Nginx 서버 프로젝트 서비스 설정 ②

$ sudo ln -s / etc / nginx / sites-available / 프로젝트 명 / etc / nginx / sites-enabled ⇒ 프로젝트를 Nginx 서버에 등록

$ sudo nginx -t ⇒ Nginx 서버 상태 확인

$ sudo systemctl restart nginx ⇒ Nginx 서버 재시작

반응형

댓글