Ubuntu+Apache2+Flask 배포/관리
2020. 8. 20. 15:02ㆍ개발노트
Apache와 WSGI를 함께 쓰는 이유
Flask만 사용해도 Flask에서 제공하는 WSGI를 이용해 서버를 배포
하지만 WSGI는 미들웨어의 개념이라 서버로서 동작하기보다는 웹 앱에 가깝기 때문에
서버의 역할을 수행하는 Apache를 함께 사용, 성능 향상을 위해 사용
- Apache는 정적인 웹 페이지를 제공
- WSGI는 동적인 페이지 제공과 추가적인 기능들을 제공
Apache 환경 설정
/etc/apache2/sites-available/000-default.conf
위 경로를 따라가서 '.conf'파일을 수정
<VirtualHost *:포트번호>
# Flask 프로세스 사용자권한 설정 및 user group, thread 설정
WSGIDaemonProcess Test python-path=/etc/anaconda3/lib/python3.6/site-packages lang='ko_KR.UTF-8' locale='ko_KR.UTF-8' threads=5
# URL "/" 접근시 먼저 run.wsgi 설정 참조
WSGIScriptAlias / /var/www/Test/test.wsgi
# 파일 경로
<Directory /var/www/Test>
WSGIProcessGroup Test
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
사용할 포트 번호를 입력,
Flask 프로세스 사용자권한 설정 및 user group, thread, '. wsgi'파일 경로를 입력
WSGI 파일 설정
import sys
sys.path.insert(0,"/var/www/Test")
from main import app as application
path에 WSGI파일이 위치한 경로를 입력
from 실행할.py파일이름 import app as application 같이 입력
아파치 명령어
우분투 (서비스명: apache2) | |
상태 확인 | service apache2 status |
아파치 시작 | service apache2 start |
아파치 정지 | service apache2 stop |
아파치 재시작 | service apache2 restart |
아파치 리로드 | service apache2 reload |