파이썬으로 웹 사이트 제작
Python Web development start with nginx
//=========
* 파이썬 설치
sudo apt-get update
python --version
python3 --version
sudo apt install python
* pip = Python Package Index (PyPI), 파이썬 패키지 관리 도구 설치
sudo apt-get install python3-pip
//=======================================
* virtualenv - 독립적인 가상의 파이썬 실행환경 설치
sudo pip3 install virtualenv
* VirtualenvWrapper - 현재 경로와 관계없이 가상환경을 활성화 도움 툴
sudo pip3 install virtualenvwrapper
$ cd ~
$ mkdir ~/.virtualenvs
.bashrc 나 .zshrc 파일에 다음을 추가
# python virtualenv settings
export WORKON_HOME=~/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON="$(which python3)" # Usage of python3
source /usr/local/bin/virtualenvwrapper.sh
source .bashrc // or 재로그인
//===========
* 가상환경 생성(VirtualenvWrapper 사용)
mkvirtualenv pyweb1
- 가상환경 지우기 : rmvitualenv pyweb1
- 가상환경 리스트 : workon
- 가상환경 해제 : deactivate
- 가상환경 확인 : which python
* 가상환경 진입
workon pyweb1
which python //가상환경 확인
/home/ubuntu/.virtualenvs/pyweb1/bin/python
//=======================================
* uWSGI 설치
WSGI(Web Server Gateway Interface)
- 파이썬과 웹서버를 연결
pip3 install uwsgi
sudo apt-get install uwsgi-plugin-python
- uwsgi.ini 파일에 plugins = python ,
- uwsgi python 명령 사용 가능
- 테스트 파일 test.py 작성
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
- 웹서버 구동 테스트
uwsgi --http :8000 --wsgi-file test.py
- 127.0.0.1:8000 으로 접속
- 설정파일 작성
~/pyweb1/uwsgi.ini 파일 생성
[uwsgi]
chdir = /home/ubuntu/pyweb1
virtualenv = /home/ubuntu/.virtualenvs/pyweb1
#home = /home/ubuntu/.virtualenvs/pyweb1 #가상환경경로
#daemonize=/home/ubuntu/.virtualenvs/pyweb1/wsgi_daemon.log
logger = file:/home/ubuntu/.virtualenvs/pyweb1/wsgi.log
#uid = ubuntu #gid = ubuntu
chmod-socket=666
#chown-socket = ubuntu:ubuntu
socket = 127.0.0.1:3031
#socket=/tmp/uwsgi_pyweb1.sock
#stats = 127.0.0.1:9191
#master = true #processes = 4 #threads = 2 #vacuum = true
#enable-threads = true #single-interpreter = true #lazy-apps = true
#module = wsgi:application
#module = pyweb1.wsgi
callable = app
wsgi-file = test.py
- uwsgi 실행
- 가상 환경에서 실행 (workon pyweb1)
uwsgi uwsgi.ini &
- uwsgi 시작이 안되는 경우, 쉘이 zsh라면 bash로 바꾼다.
//=======================================
* NginX 설정
sudo apt-get install nginx
sudo ufw app list
sudo ufw allow 'Nginx HTTP' // 방화벽에 허용 등록
- 자동 시작
/etc/init.d/nginx 파일이 있는지 확인
service --status-all
sudo update-rc.d nginx defaults
- sudo update-rc.d -f nginx remove // 자동시작 제거
- 설정 파일
/etc/nginx/sites-available/default 파일에 다음을 추가
#===========
#pyweb1
server {
#listen 8080 ;
#listen [::]:80 ;
server_name pyweb1.test;
#root /home/ubuntu/pyweb1;
#index index.html index.htm;
location / {
try_files $uri @app;
}
location @app {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
#uwsgi_pass unix:/tmp/uwsgi_pyweb1.sock;
}
}
- 서버 시작
sudo service nginx start
//===============
//참고
https://brownbears.tistory.com/16
https://edykim.com/ko/post/connecting-flask-uwsgi-to-nginx/
https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html
https://medium.freecodecamp.org/how-to-build-a-web-application-using-flask-and-deploy-it-to-the-cloud-3551c985e492
'Code > Python' 카테고리의 다른 글
[파이썬] 셀레늄을 이용한 웹 크롤링 (0) | 2020.02.01 |
---|---|
아나콘다 설치 에러 해결 방법 (0) | 2020.01.24 |
[Python] Django 프레임워크 사용하기 (0) | 2019.03.15 |
[Python] Flask 프레임워크 사용하기 (0) | 2019.03.15 |
파이썬(Python) 기본 정보 (2) | 2015.03.22 |