우분투 리눅스

[ubuntu linux] flask와 apache 연동 - 서버세팅

U-learner 2023. 3. 31. 22:45
반응형

오늘은 [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 세팅은 완료된 상태에서 진행합니다. 세팅이 안되셨으면 제 블로그에 관련 글을 보신 후 세팅완료 후 도전해주세요

 

[ubuntu linux] 우분투 ftp 서버 세팅 (Vsftpd)

매번 작업을 하면서도 시간이 지나면 계속 까먹는 내 기억력을 탓하며, [ubuntu linux] 우분투 ftp 서버 세팅 (Vsftpd) 에 대해서 자세히 기록하려 합니다. 대부분 서버세팅에서 애먹는 것이 퍼미션과

ubuntu.2toy.net

 

[ubuntu linux] 우분투 apache 가상호스트 세팅 (아파치)

우리가 리눅스 서버 세팅을 하는 이유 대부분 홈페이지 및 블로그(워드프레스) 운영 목적이 많으시죠. 저의 경우는 블로그와 클라우드 서버 운영이 목적이였습니다. 한 서버에 여러개의 사이트

ubuntu.2toy.net

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로 구축한 사이트 입니다. 들어가서 참고하시기 바랍니다.

https://jpg-png.toylee.net 

 

PNG to JPG Converter

PNG to JPG 변환 Converter png를 jpg 또는 jpg를 png 최적화로 변환해 줍니다. jpg와 png를 동시에 선택해도 각각 반대로 변환해 줍니다 동시 변환 숫자는 "무제한" 입니다. 변환 사진을 클릭시 각각 다운로

jpg-png.toylee.net

반응형