오늘은 [ubuntu linux] flask와 apache 연동 - 서버세팅 에 대해 정리 하려 합니다. 공부 초기 이해가 안가는 부분이 flask에서 localhost 서버 주소를 생성하는데, 이것을 실제 리눅스 서버에 어떻게 연동하는지 였습니다. 깨닫기 까지 어려웠던 아파치 가상호스트 연동은 실제 구현하고 나니 어렵지 않음에 놀라기도 했습니다. 그럼 정리해 보겠습니다.
목차
1. flask 기본 문서 제작 및 ftp 업로드
- 예시) jpgpng폴더 -> wsgi폴더 -> mod.wsgi
- mod.wsgi
- flaskApp.py
- FTP에 접속해서 지금 만든 파일 업로드
- 퍼미션 권한 775로 변경
2. mod_wsgi 모듈설치
3. 가상호스트(버추얼호스트) 세팅 (.conf)
기본적으로 ftp와 도메인, https 세팅은 완료된 상태에서 진행합니다. 세팅이 안되셨으면 제 블로그에 관련 글을 보신 후 세팅완료 후 도전해주세요
1. flask 기본 문서 제작 및 ftp 업로드
기존에 아파치 서버가 구축되어 있는 상태에서 flask 연동은 간단합니다. 하지만 모르는 경우 굉장히 어렵죠. 이 블로그 글만 보더라도 쉽게 완료하실 것입니다.
flask와 apache연동전에 flask에 필요한 기본 폴더 및 문서를 만들어 두겠습니다.
아래 사진을 참고해주세요
예시) jpgpng폴더 -> wsgi폴더 -> mod.wsgi
mod.wsgi
import sys
sys.path.insert(0,'/var/www/jpgpng/html')
from flaskApp import app as application
flaskApp.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "hello World!"
FTP에 접속해서 지금 만든 파일 업로드
퍼미션 권한 775로 변경
세팅을 다한 후 퍼미션 변경이 안됨으로 에러나는 경우가 대부분 입니다. 사이트가 오류시 꼭 퍼미션을 체크하세요
2. mod_wsgi 모듈설치
본격적으로 flask와 apache와 연결을 위해서는 mod_wsgi 모듈을 설치해서 사용해야 합니다. 명령어 한줄이면 끝이니 부담없이 설치합니다. (python3 버전)
apt-get install libapache2-mod-wsgi-py3
설치 후 wsgi 파일을 만들어야 하는데, 이미 1번에서 만들었습니다.
3. 가상호스트(버추얼호스트) 세팅 (.conf)
개인적으로 처음 공부할때 가장 어렵고 난해하다고 생각했던 버추얼호스트 세팅을 해줘야 합니다. 사실 이미 만들어진 내용을 복사 붙여넣기 하고 도메인 주소와 경로만 잡아주면 되지만, 만들어진 버추얼호스트 정보가 없으면 진짜 어려운 숙제와 같습니다. 잘 복사해서 붙여넣기 하시고, 내 상황에 맞게 잘 변경해 주세요.
vi 원하는제목.conf
.
.
virtualhost 내용작성
.
.
a2ensite 원하는제목.conf
systemctl restart apache2
<IfModule mod_ssl.c>
<VirtualHost *:80>
ServerName jpg-png.toylee.net
WSGIScriptAlias / /var/www/jpg-png/html/wsgi/mod.wsgi
ErrorLog ${APACHE_LOG_DIR}/jpg-png_error.log
CustomLog ${APACHE_LOG_DIR}/jpg-png_access.log combined
LogLevel warn
Redirect permanent / https://jpg-png.toylee.net/
<Directory /var/www/jpg-png/html/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName jpg-png.toylee.net
WSGIScriptAlias / /var/www/jpg-png/html/wsgi/mod.wsgi
DocumentRoot /var/www/jpg-png/html
ErrorLog ${APACHE_LOG_DIR}/jpg-png_error.log
CustomLog ${APACHE_LOG_DIR}/jpg-png_access.log combined
<Directory "/var/www/jpg-png/html/">
Order deny,allow
Allow from all
AllowOverride all
Require all granted
Options Indexes FollowSymLinks
</Directory>
SSLCertificateFile /etc/letsencrypt/live/toylee.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/toylee.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
flask로 구축한 사이트 입니다. 들어가서 참고하시기 바랍니다.
'우분투 리눅스' 카테고리의 다른 글
Ubuntu 서버를 이용한 데이터베이스 서버 구축 (0) | 2023.07.18 |
---|---|
Ubuntu 서버를 활용한 웹 서버 구성하기 (0) | 2023.07.17 |
[ubuntu linux] 우분투 apache 가상호스트 세팅 (아파치) (0) | 2023.03.31 |
[ubuntu linux] 우분투 ftp 서버 세팅 (Vsftpd) (0) | 2023.03.31 |
ubuntu linux 에 대해 알아보자 (다운로드) (0) | 2023.03.12 |