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를 사용하고 있다면, 다음 명령어로 설치할 수 있습니다.
설치가 완료되면 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
├── 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 서버를 재시작하여 변경사항을 적용합니다.
7. 접속 확인
웹 브라우저에서 http://your-domain.com
또는 http://your-server-ip
로 접속하여 Flask 애플리케이션이 정상적으로 Apache를 통해 서비스되는지 확인합니다.
이 과정이 완료되면 Apache 서버와 Python Flask 애플리케이션이 연동되어, Apache를 통해 Python 웹 애플리케이션을 서비스할 수 있습니다.