호스팅 매뉴얼

Home > 호스팅 > 컨테이너호스팅 > Python 사용하기

Gunicorn으로 정적 파일 서비스하기 Gunicorn으로 정적 파일 서비스하기

• Python 파일에 작성하는 프로젝트명과 디렉터리 경로를 확실하게 작성해주시기 바랍니다.
• 아래 매뉴얼은 gunicorn 패키지를 기준으로 작성되었습니다.
• HOST 와 PORT 설정은 반드시 따라주시기 바랍니다.

 

Django 및 Flask에서는 기본 배포 플랫폼으로 웹 서버 및 애플리케이션의 Python 표준인 WSGI를 사용하며, 가비아 파이썬 호스팅에서는 WSGI 애플리케이션 서버인 Gunicorn 패키지를 제공하여 이를 지원하고 있습니다. 

해당 메뉴얼에서는 Gunicorn 및 Whitenoise 패키지를 통해 이미지나 css와 같은 정적 파일들을 서비스 하는 방법을 안내하고 있습니다. 

※ Whitenoise 패키지는 Python 3.x 버전만 지원합니다. 

 

 

1. Whitenoise 패키지를 설치합니다.

 

pip install whitenoise

 

 

2. 서비스에 사용되는 Python 파일을 수정합니다. 

2-1. Django를 사용할 경우

config/wsgi.py 파일을 다음과 같이 수정합니다.

 

import os
from whitenoise import WhiteNoise
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
application = get_wsgi_application()

application = WhiteNoise(application, root='/web/project_dir')
application.add_files('/web/project_dir/static/', prefix='')

 

경로 설정 부분의 /web/project_dir은 project_dir을 작성한 프로젝트명으로 수정하시기 바랍니다. (ex. /web/myproject )

 

application.add_files의 경로는 정적 파일을 서비스하는 디렉터리 경로로 수정하시면 되고, 또한 정적 파일을 서비스하는 디렉터리가 여럿일 경우, 다음과 같이 application.add_files 라인을 추가로 작성해주시기 바랍니다.

 

application = WhiteNoise(application, root='/web/project_dir')
application.add_files('/web/project_dir/images/', prefix='')
application.add_files('/web/project_dir/videos/', prefix='')

 

2-2. Flask를 사용할 경우 

Flask를 사용하여 실행하는 py 파일을 다음과 같이 수정합니다.

 

from flask import Flask
from whitenoise import WhiteNoise

app = Flask(__name__)
app.wsgi_app = WhiteNoise(app.wsgi_app, root='static/')

 

정적 파일을 서비스하는 디렉토리가 여럿일 경우, 다음과 같이 디렉토리에 대한 설정을 추가해 주시기 바랍니다.

 

from flask import Flask
from whitenoise import WhiteNoise

app = Flask(__name__)
app.wsgi_app = WhiteNoise(app.wsgi_app)
my_static_folders = (
    'static/folder/one/',
    'static/folder/two/',
    'static/folder/three/'
)
for static in my_static_folders:
    app.wsgi_app.add_files(static)

 

 

3. 기존 방식과 동일하게 웹 애플리케이션을 실행합니다.

  • 컨테이너호스팅 시작하기

    • DNS 설정하기

    • SFTP/SSH 접속하기

    • DB 접속하기

    • phpPgAdmin 접속 설정하기

  • 관리 콘솔

    • 관리 콘솔 알아보기

  • 자원 현황

    • 사용량 현황 보기

    • 트래픽 당겨쓰기

    • 웹 용량 추가하기

    • 트래픽 추가/충전하기

    • 웹 용량 차단 해제하기

    • 용량 초과 알림 설정하기

    • 메모리 용량 추가하기

  • 기본 정보

    • 서비스 시작일/만기일 보기

    • 소유자/관리자 정보 보기

    • 타입 변경하기

    • 주간운영리포트 수신 설정하기

    • 장애 알림 받기

  • 도메인

    • 대표 도메인 변경하기

    • 도메인 연결/해지하기

  • 보안 설정

    • 웹 서버(SFTP/SSH) 접속 설정하기

    • 웹 서버(SFTP/SSH) 비밀번호 변경하기

    • 웹사이트 접근 IP 관리하기

    • SSH/SFTP 접속 차단 IP 해제하기

    • DB 서버 비밀번호 변경하기

    • 웹 서버 접속 허용 IP 등록하기

    • 웹쉘 탐지 관리하기

  • 웹 서버

    • 웹 서버 환경 변경하기

    • 웹 서버 초기화하기

    • 웹 서버 접속 허용 IP 등록하기

    • 웹 서버(SFTP/SSH) 비밀번호 변경하기

    • 웹 로그 보기

  • DB 서버

    • DB 서버 비밀번호 변경하기

    • phpPgAdmin 접속 설정하기

    • DB 접속하기

    • MySQL 서버 접속/백업/복원하기

    • DB 서버 환경 변경하기

    • DB 서버 초기화하기

  • 백업/복원

    • 백업하기

    • 복원하기

  • 모니터링

    • 서버 현황 보기

    • 웹/DB 현황 보기

    • 사이트 웹 로그 분석하기

    • 슬로우 쿼리 확인하기

    • 트래픽 현황 보기

    • 이력 관리하기

  • 메일

    • 메일 관리하기

  • 서비스 계약 관리

    • 결제 알림 설정하기

    • 담당자 정보 변경하기

    • 서비스 해지하기

  • Node.js 사용하기

    • Node.js 환경 확인하기

    • 프로세스 관리 도구 사용하기

    • 기본 웹 애플리케이션 만들기

    • Express로 웹 애플리케이션 만들기

    • NVM으로 버전 관리하기

    • SSL 인증서 설치 후 HTTPS 통신 강제 적용하기

    • 채팅 서버 만들기

    • MySQL 모듈 기본 사용 방법

  • Python 사용하기

    • Python 환경 확인하기

    • 패키지 관리 도구 사용하기

    • Flask로 기본 웹 애플리케이션 만들기

    • Django로 웹 애플리케이션 만들기

    • Gunicorn으로 정적 파일 서비스하기

    • 미디어 파일을 실시간으로 서비스하기 위한 Django 설정법

    • SSL 인증서 설치 후 HTTPS 통신 강제 적용하기

  • Java 사용하기

    • Java 환경 확인하기

    • Spring Boot CLI로 프로젝트 생성하기

    • Spring Boot CLI로 Groovy 웹 프로젝트 실행하기

    • Maven으로 SpringBoot 웹 프로젝트 실행하기

    • Gradle로 SpringBoot 웹 프로젝트 실행하기

    • 빌드한 웹 프로젝트 실행하기

    • SSL 인증서 설치 후 HTTPS 통신 강제 적용하기

  • Redis 사용하기

    • Node.js와 Redis 연동하기