Python과 Apache HTTP 서버를 연동하여 웹 애플리케이션을 배포하는 방법으로는 WSGI(Web Server Gateway Interface) 모듈을 사용하는 방법이 일반적입니다. Apache에서는 mod_wsgi 모듈을 사용하여 Python 애플리케이션을 실행할 수 있습니다. 여기서는 Python Flask 애플리케이션을 Apache 서버와 연동하는 과정을 설명하 겠습니다.

1. 환경 준비

  • Python이 설치되어 있어야 하고, Flask 같은 Python 웹 프레임워크가 필요합니다.
  • Apache 서버가 설치되어 있어야 하며, Apache에 mod_wsgi 모듈을 추가로 설치해야 합니다.

2. mod_wsgi 설치

먼저 mod_wsgi를 설치합니다. Ubuntu를 사용하고 있다면, 다음 명령어로 설치할 수 있습니다.

bash
sudo apt-get update sudo apt-get install libapache2-mod-wsgi-py3

설치가 완료되면 Apache 서버에 mod_wsgi가 추가됩니다.

3. Flask 애플리케이션 준비

Flask 애플리케이션을 준비합니다. 예를 들어, my_flask_app이라는 Flask 프로젝트 디렉토리 안에 app.py 파일을 생성하여 기본적인 Flask 애플리케이션을 작성합니다.

디렉토리 구조

my_flask_app/ ├── app.py # Flask 애플리케이션 메인 파일 ├── myapp.wsgi # WSGI 파일 (Apache가 Flask 앱을 인식하도록 함) └── templates/ # HTML 파일들이 저장되는 폴더 └── index.html

p.py 예제

from flask import Flask

app = Flask(name)

@app.route('/') def hello(): return "Hello, World! This is served by Apache and Flask."

if name == "main": app.run()

4. WSGI 파일 생성 (myapp.wsgi)

Apache 서버가 Flask 애플리케이션을 인식할 수 있도록 WSGI 파일을 생성합니다. my_flask_app 디렉토리 내에 myapp.wsgi 파일을 작성합니다.

import sys import os from app import app as application

애플리케이션 경로 설정

sys.path.insert(0, os.path.dirname(file))

5. Apache 설정 파일 수정

Apache 설정 파일을 수정하여 Flask 애플리케이션을 서비스하도록 설정합니다. 이 설정 파일은 보통 /etc/apache2/sites-available/000-default.conf 또는 새로 구성한 VirtualHost 파일입니다.

Apache 설정 예시

Apache 설정 파일에 다음과 같은 구성을 추가합니다.

<VirtualHost *:80> ServerName myflaskapp.com # 도메인 이름 (또는 IP 주소)

WSGIDaemonProcess myapp python-path=/path/to/my_flask_app python-home=/path/to/venv WSGIScriptAlias / /path/to/my_flask_app/myapp.wsgi

<Directory /path/to/my_flask_app> Require all granted </Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

  • WSGIDaemonProcess: python-path는 Flask 애플리케이션이 있는 경로를 지정하고, python-home은 Python 가상 환경 경로를 지정합니다.
  • WSGIScriptAlias: Apache가 요청을 myapp.wsgi 파일로 전달하도록 설정합니다.

6. Apache 서버 재시작

설정 파일을 저장한 후, Apache 서버를 재시작하여 변경사항을 적용합니다.

bash
sudo service apache2 restart

7. 접속 확인

웹 브라우저에서 http://your-domain.com 또는 http://your-server-ip로 접속하여 Flask 애플리케이션이 정상적으로 Apache를 통해 서비스되는지 확인합니다.

이 과정이 완료되면 Apache 서버와 Python Flask 애플리케이션이 연동되어, Apache를 통해 Python 웹 애플리케이션을 서비스할 수 있습니다.