티스토리 뷰

728x90
반응형

안녕하세요 괴짜님,

이 블로그는 기본적으로 Windows Server와 IIS를 프로덕션 환경으로 사용하여 Django 애플리케이션을 배포하는 데 중점을 두고 있습니다.

때때로 클라이언트는 Linux OS보다 Windows를 더 선호한다는 요구 사항이 있습니다.

 

1단계: VM 생성

Django 서버를 호스팅할 수 있는 Windows 서버가 필요합니다. 이를 위해 클라우드에 가상 머신이나 호스트를 만들거나 베어 메탈 서버를 사용할 수 있습니다.

참조 URL: https://medium.com/@sagar.gadewar/create-and-integrate-s3-and-rds-with-ec2-in-aws-47015743fe88

추천: Windows Server 2019

 

2단계: Python 3 설치 프로그램 다운로드

Python 3를 사용하려면 Python 인터프리터에 액세스할 수 있어야 합니다.

  1. 브라우저 창을 열고 python.org  Windows용 다운로드 페이지 로 이동합니다 .
  2. Python Releases for Windows 라는 제목 아래에서 최신 Python 3 릴리스인 Python 3.xx 링크를 클릭합니다 . (이 글을 쓰는 시점에서는 Python 3.6.5의 최신 버전입니다.)
  3. 아래로 스크롤하여 64비트용 Windows x86–64 실행 파일 설치 프로그램 또는 32비트용 Windows x86 실행 파일 설치 프로그램을 선택합니다. (아래 참조)
  4. 설치 프로그램을 선택하고 다운로드했으면 다운로드한 파일을 두 번 클릭하여 실행하기만 하면 됩니다. 다음과 같은 대화 상자가 나타납니다.

5. 나타나는 Python 설치 대화 상자에서 " 설치 사용자 지정"을 클릭합니다.

6. 경로에 Python 3.8 추가 체크박스가 선택되어 있는지 확인하세요 .

[선택 과목]

7. 선택적 기능 단계에서 기본 설정을 그대로 두고 "다음"을 클릭합니다.

8. 고급 옵션 단계에서 다음 변경 사항을 적용합니다.

  • " 모든 사용자를 위해 설치 " 상자를 체크하세요(이렇게 하면 "표준 라이브러리 사전 컴파일" 상자도 체크됩니다).
  •  환경 변수에 Python 추가 ”를 체크합니다.
  • " 설치 위치 사용자 지정 " 아래의 입력 상자에서 값을 다음과 같이 변경합니다: C:\Python<버전>.

9. “설치”를 클릭하세요

10. 설치가 완료되면 닫기 버튼을 클릭하세요.

Python 설치 확인

  • 새 명령 프롬프트를 엽니다. 명령 프롬프트가 이미 열려 있는 경우 Python 설치 프로세스에서 새 환경 변수가 추가되고 열려 있는 명령 프롬프트에는 새 환경 변수가 없으므로 닫았다가 다시 열어야 합니다.
  • python을 입력하고 Enter를 누릅니다. 그러면 Python 인터프리터가 열립니다.
c:\> 파이썬 
>>> 
>>> 종료()

Python 인터프리터가 보이지 않고 "'python'이 내부 또는 외부 명령으로 인식되지 않습니다..."라는 오류가 표시되면 설치 프로세스의 고급 옵션 단계에서 "환경 변수에 Python 추가" 상자가 선택되지 않은 것일 수 있습니다. 이런 경우 Python을 제거했다가 다시 설치하고 "환경 변수에 Python 추가" 확인란을 선택하거나 다음을 시스템 환경 "경로" 변수에 추가할 수 있습니다.
C:\Python38;C:\Python38\Scripts

 

3단계: Windows용 Git 독립 실행형 설치 프로그램

  1. Windows용 최신 Git 설치 프로그램을 다운로드하세요 .
  2. 설치 프로그램을 성공적으로 시작하면 Git 설치 마법사 화면이 표시됩니다. Next  Finish 프롬프트를 따라 설치를 완료합니다. 기본 옵션은 대부분 사용자에게 매우 합리적입니다.
  3. 명령 프롬프트를 엽니다(설치 시 Windows 명령 프롬프트에서 Git을 사용하지 않도록 선택한 경우 Git Bash를 엽니다).
  4. 다음 명령을 실행하여 Git 사용자 이름과 이메일을 구성하고 Emma의 이름을 자신의 이름으로 바꾸세요. 이러한 세부 정보는 귀하가 만드는 모든 커밋과 연관됩니다.
$ git config --global user.name "사가르 가데와르" 
$ git config --global user.email "eparis@atlassian.com"
 

4단계: 데이터베이스 구성

베어 메탈(Windows Server)에서 데이터베이스를 구성하려면

URL 참조: https://www.postgresqltutorial.com/install-postgresql/

RDS를 구성하려면

URL 참조: https://aws.amazon.com/getting-started/tutorials/create-connect-postgresql-db/

 

5단계: Python 가상 환경 구성

venv (Python 3용)와 virtualenv (Python 2용)를 사용하면 다양한 프로젝트에 대해 별도의 패키지 설치를 관리할 수 있습니다. 기본적으로 "가상" 격리된 Python 설치를 만들고 해당 가상 설치에 패키지를 설치할 수 있습니다. 프로젝트를 전환할 때 간단히 새 가상 환경을 만들면 다른 환경에 설치된 패키지가 손상될까 걱정할 필요가 없습니다. Python 애플리케이션을 개발하는 동안에는 항상 가상 환경을 사용하는 것이 좋습니다.

1. 명령 프롬프트를 열고 다음 명령을 실행하세요.


c:\사용자\sagar>   cd C:\c:\>   mkdir pyvirtualenvc:\>   cd pyenvc:\pyenv>   python -m venv 에릭c:\pyenv>   cd C:\pyvirtualenv\EricC:\pyenv\Eric>   스크립트\activate.bat(에릭) C:\pyenv\Eric>   python -m pip install --upgrade pip
 pip 수집 
중 
https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da1
 42ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)|████████████████████████████████| 1.4MB 6.8MB/s 
수집된 패키지 설치: pip 
기존 설치 발견: pip 19.2.3 pip-19.2.3 제거: 
pip-19.2.3을 성공적으로 제거했습니다. 
pip-20.0.2를 성공적으로 설치했습니다.(에릭) C:\pyenv\Eric> cd ..(에릭) C:\pyenv> git clone <django 프로젝트 저장소 url>(에릭) c:\pyenv>   cd <django-project>(에릭) c:\pyenv\<django-project>>   pip install wfastcgi(에릭) c:\pyenv\<django 프로젝트>>   pip install -r requirement.txt(에릭) c:\pyenv\<django-project>> python manage.py makemigrations(에릭) c:\pyenv\<django-project>> python manage.py migrate(에릭) c:\pyenv\<django-project>> python manage.py collectstatic(에릭) c:\pyenv\<django-project>> python manage.py createsuperuser 
admin: <관리자 이름> 
이메일: 
비밀번호: <비밀번호>

프로젝트 폴더 아래의 setting.py 파일에서 다음 내용을 확인하세요.

1. 디버그 = 거짓

2. 허용된 호스트 = ['로컬호스트','서버 IP']

 

6단계: IIS 설치

이미 IIS를 설치했더라도 원래 IIS 설치에 CGI 기능이 포함되지 않았다면 이러한 단계를 거쳐 CGI 기능을 설치해야 할 수도 있습니다.

  • 제어판을 엽니다
  • 오른쪽 상단의 검색 상자에 "Windows 기능"(따옴표 제외)을 입력합니다.
  • "프로그램 및 기능" 아래의 검색 결과에서 " Windows 기능 켜기/끄기 "를 클릭합니다. 그러면 역할 및 기능 추가 마법사가 시작됩니다.

IIS 설치 확인

  • 서버에서 웹 브라우저를 엽니다.
  • 주소창에 http://localhost / 를 입력 하고 Enter를 누릅니다. 기본 IIS 페이지가 표시됩니다.
  • 기본 IIS 페이지가 보이지 않는 경우:

1. 제어판을 엽니다

2. 검색창에 "서비스"를 입력합니다.

3. "관리 도구"에서 "로컬 서비스 보기"를 클릭합니다.

  • 목록의 맨 아래로 스크롤하여 "World Wide Web Publishing Service"가 나열되어 있고 상태가 "실행 중"인지 확인하세요.
 

7단계: IIS 구성

IIS에서 FastCGI 구성

  1. Windows 버튼을 클릭하고 관리 도구를 클릭한 다음 인터넷 정보 서비스(IIS) 관리자를 두 번 클릭하여 IIS 관리자를 엽니다.
  2. 왼쪽 목록에서 서버 이름을 클릭합니다. 다음 대화 상자가 표시되면 "이 메시지를 표시하지 않음" 상자를 체크하고 "아니요"를 클릭합니다. (필요한 경우 IIS 관리자 오른쪽에 있는 "작업"에서 "새 웹 플랫폼 구성 요소 가져오기"를 클릭하여 언제든지 이 작업을 수행할 수 있습니다.)

3. “FastCGI 설정” 아이콘을 더블클릭합니다.

4. 오른쪽에 있는 "작업"에서 "애플리케이션 추가..."를 클릭합니다.

5. FastCGI 애플리케이션 추가 대화 상자의 "전체 경로" 상자에 애플리케이션의 가상 환경에 대한 Python 실행 파일의 경로를 입력합니다.
C:\virtualenvs\Eric\Scripts\python.exe

6. 인수 입력 상자에 애플리케이션의 가상 환경에 있는 wfastcgi.py 파일 경로를 입력합니다:
C:\virtualenvs\Eric\Lib\site-packages\wfastcgi.py

7. 이 시점에서 FastCGI 애플리케이션 추가 대화 상자의 설정은 다음과 같아야 합니다.

8. FastCGI 애플리케이션 추가 대화 상자가 여전히 열려 있는 상태에서 "일반" 섹션에서 " 환경 변수 " 줄을 클릭한 다음 줄 오른쪽에 있는 (컬렉션) 옆에 나타나는 회색 "..." 버튼을 클릭합니다. 그러면 환경 변수 컬렉션 편집기 대화 상자가 열립니다.

9. 환경 변수 컬렉션 편집기 대화 상자에서 "추가"를 클릭합니다.

10. 오른쪽의 "이름 속성" 섹션에서 "이름" 오른쪽에 있는 입력 상자를 클릭하고 입력 상자에 이미 있는 "이름" 텍스트를 제거하고 DJANGO_SETTINGS_MODULE을 입력합니다 (반드시 모두 대문자로 입력해야 합니다).

11. “값” 오른쪽에 있는 입력 상자를 클릭하고 Ericsson.settings를 입력합니다.

12. 다시 "추가"를 클릭하고 다음을 입력합니다.
이름: PYTHONPATH
값: C:\User_details\Ericsson

13. 다시 "추가"를 클릭하고 다음을 입력합니다.
이름: WSGI_HANDLER
값: Ericsson.wsgi.application

14. 이 시점에서 세 가지 환경 변수가 생깁니다.

참고: 이 모든 설정은 대소문자를 구분합니다. 작동하려면 여기에 표시된 대소문자를 정확히 입력해야 합니다.

  • "확인"을 클릭하여 EnviromentVariables 컬렉션 편집기를 닫습니다.
  • "확인"을 클릭하여 FastCGI 애플리케이션 추가 대화 상자를 닫습니다.
 

8단계: 새 IIS 웹 사이트 만들기 및 구성

다음으로, Django 애플리케이션을 위한 IIS에서 새 웹사이트를 만들고, 새로 만든 웹사이트에 핸들러 매핑을 추가해야 합니다. 이렇게 하면 IIS 웹사이트에 들어오는 요청이 처리를 위해 Django 애플리케이션에 전달됩니다.

  • IIS 관리자 열기
  • 연결 아래의 왼쪽에서 서버 이름 왼쪽에 있는 화살표를 클릭하여 서버 이름 아래의 트리를 확장합니다.
  • 사이트 폴더를 마우스 오른쪽 버튼으로 클릭하고 "웹사이트 추가..."를 클릭합니다.
  • 사이트 이름에 Ericsson을 입력하세요.
  • 물리적 경로의 경우 다음을 입력하세요: C:\User_details\Ericsson
  • 이 예제 구성의 경우 기본 사이트가 포트 80에서 실행되고 있으므로 포트를 81로 변경합니다. 실제 애플리케이션의 경우 바인딩을 추가하여 이름 기반 가상 호스팅을 사용하고 포트 80에서 사이트를 실행해야 할 것입니다.
  • 바인딩 섹션에서 IP 주소 매개변수 드롭다운을 통해 개인 IP 주소를 선택합니다.

"호스트 이름"은 비워둘 수 있습니다. 이 pIn에서 간단히 말해서:

1단계: 웹사이트 추가 대화 상자가 다음과 같이 표시되어야 합니다.

  • “확인”을 클릭하세요

다음으로, 이 사이트에 FastCGI 핸들러 매핑을 추가해서 사이트에 들어오는 요청이 Django 애플리케이션에 의해 처리되도록 하겠습니다.

  • IIS 관리자에서 왼쪽에 있는 사이트 폴더를 확장하고 사이트를 클릭합니다.
  • 오른쪽에서 " Handler Mappings " 를 두 번 클릭합니다.

오른쪽의 "작업" 아래에서 "모듈 매핑 추가"를 클릭합니다.

  • "요청 경로" 상자에 별표를 입력하세요: *
  • “모듈” 상자의 오른쪽에 있는 화살표를 클릭하고 “FastCgi 모듈”을 선택하십시오.

참고: CgiModule이 아닌 FastCgi Module을 선택해야 합니다.

  • "실행 파일" 상자에 다음을 입력합니다.
    C:\virtualenvs\Eric\Scripts\python.exe|C:\virtualenvs\Eric\Lib\site-packages\wfastcgi.py

python.exe 뒤에 있는 문자는 파이프(|)이며 키보드의 Shift-\를 눌러 입력됩니다.

  • "이름" 상자에 Django Handler를 입력합니다(원하는 이름으로 지정할 수 있습니다. 모듈 매핑에 대한 친근한 이름일 뿐입니다).
  • 모듈 매핑 추가 대화 상자가 이제 다음과 같이 표시됩니다.
  • "요청 제한" 버튼을 클릭하고 "요청이 다음에 매핑된 경우에만 핸들러 호출" 체크박스의 선택을 취소합니다.
  • 요청 제한 대화 상자를 닫으려면 "확인"을 클릭하세요.
  • 모듈 매핑 추가 대화 상자를 닫으려면 "확인"을 클릭하세요.
  • "이 실행 파일에 대한 FastCGI 애플리케이션을 만들겠습니까?"라는 메시지가 표시되면 이전에 애플리케이션을 만들었으므로 "아니요"를 클릭합니다.

모듈 매핑에서 FastCGI 애플리케이션을 만들 수 있지만 설정이 달라 보이고 최종 결과를 완전히 편집할 수 없습니다. 또한 모든 다양한 부분을 포함하여 가능한 한 철저하게 FastCGI 애플리케이션을 만드는 방법을 자세히 설명했습니다.

  • 이제 foo 웹사이트의 핸들러 매핑에 Django 핸들러가 나열된 것을 볼 수 있습니다.

이 시점에서는 모든 것이 제대로 작동해야 하므로 브라우저에서 애플리케이션을 로드하여 확인하세요.

 

9단계: Windows 방화벽 구성

  1. 제어판, 시스템 및 보안, Windows 방화벽으로 이동합니다.
  2. 고급 설정을 선택하고 왼쪽 창에서 인바운드 규칙을 강조 표시합니다.
  3. 인바운드 규칙을 마우스 오른쪽 버튼으로 클릭하고 새 규칙을 선택합니다.
  4. 열려는 포트를 추가하고 다음을 클릭합니다.
  5. 다음 창에 프로토콜(TCP 또는 UDP)과 포트 번호를 추가하고 다음을 클릭합니다.
  6. 다음 창에서 연결 허용을 선택하고 다음을 누릅니다.
  7. 원하는 네트워크 유형을 선택하고 다음을 클릭하세요.
  8. 프로필 섹션에서 모든 체크박스(도메인, 비공개, 공개)를 선택합니다.
  9. 규칙에 의미 있는 이름을 지정하고 완료를 클릭하세요.

Django 프로젝트의 debug.log 파일 에 대해 사용자가 읽기/쓰기 권한이 있는지 확인하세요 .

 

10단계: 정적 콘텐츠를 제공하기 위한 정적 애플리케이션 만들기

왼쪽에 사이트 웹사이트를 확장하세요

Django 주요 애플리케이션을 마우스 오른쪽 버튼으로 클릭하고 바인딩 편집을 선택합니다.

개인 IP를 선택했는지 확인하세요

정적 폴더를 마우스 오른쪽 버튼으로 클릭하고 응용 프로그램으로 변환을 선택합니다.

신청서 추가 양식을 작성하세요.

사이트 이름(프로젝트 이름), 애플리케이션 풀(프로젝트 이름), 물리적 경로(정적 폴더의 절대 경로)

정적 애플리케이션을 애플리케이션으로 변환한 후 정적 애플리케이션을 선택 하고 정적 홈 핸들러 매핑을 엽니다.

정적 애플리케이션에 대한 Django 핸들러 제거

Django Handler 항목을 마우스 오른쪽 버튼으로 클릭하고 제거를 선택합니다.

이 블로그가 여러분에게 도움이 되기를 바랍니다.

 
 

 

728x90
반응형