본문 바로가기
App Programming/Django

[Django] 웹 서버 연동 원리

by goatlab 2023. 6. 28.
728x90
반응형
SMALL

wsgi.py

 

장고는 runserver 명령을 사용하여 자체 웹 서버를 실행할 수 있다. 하지만 이 서버는 개발용으로만 사용하도록 설계되었으며 배포 환경에서 사용해서는 안된다. 따라서, 배포 환경에 사용하려면 Apache 또는 Nginx와 같은 웹 서버를 사용해야 한다. 이러한 웹 서버에 연결하려면 wsgi.py 파일을 만들어야 한다.

 

장고의 wsgi.py 파일에는 application 객체가 다음과 같이 정의되어 있다.

 

application = get_wsgi_application()

 

웹 서버는 이 application 객체를 호출하여 장고 어플리케이션을 실행한다. 호출 전에 설정 정보를 로드해야 하며, 이 설정 정보는 mysite/wsgi.py 파일에 다음과 같이 지정된다.

 

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

 

WSGI 인터페이스

 

  • 웹 서버 : Apache https 또는 Nginx와 같은 프로그램
  • 웹 어플리케이션 서버 : uWSGI, Gunicorn과 같은 WAS 프로그램
  • 어플리케이션 : 장고 프레임워크를 사용하여 만든 파이썬 프로그램

 

WSGIHandler 객체

 

class WSGIHandler(base.BaseHandler):
	def __init__(self, *args, **kwargs):
    
    def __call__(self, environ, start_response):
    	response = self.get_response(request)
        status = '%d %s' % (response.status_code, response.reason_phrase)
        response_headers = list(response.items())
        start_response(status, response_headers)
        
        return response

 

운영 서버 설정

 

SECRET_KEY 개발 모드에서는 settings.py 파일에 하드 코딩되어 있지만 운영 모드에서는 환경 변수로 설정
DEBUG 개발 모드에서는 True로 설정되어 있지만 운영 모드에서는 False로 설정
ALLOWED_HOSTS 웹 서버의 IP 주소나 도메인을 등록하여 CSRF 공격을 방지
정적 파일 관리 settings.py 파일의 STATIC_ROOT 설정 변경
데이터베이스 및 로그 파일 권한 데이터베이스 파일 (또는 원격 주소), 로그 파일 등
캐시 서버와 데이터베이스 서버 연결 데이터베이스 접속 비밀번호는 다른 곳에 저장하는 것을 권장
메일 발송 기능 SERVER_EMAIL, DEFAULT_FROM_EMAIL

 

배포 환경 확인

 

728x90
반응형
LIST

'App Programming > Django' 카테고리의 다른 글

[Django] 북마크 앱 만들기 (1)  (0) 2023.06.28
[Django] Books 어플리케이션 (2)  (0) 2023.06.27
[Django] Books 어플리케이션 (1)  (0) 2023.06.27
[Django] 폼 (Form)  (0) 2023.06.27
[Django] 템플릿 시스템 (2)  (0) 2023.06.26