python을 iis에서 실행하기

사전 요구 사항

  • Windows 서버에 IIS가 설치되어 있어야 합니다.
  • Python이 설치되어 있어야 합니다.
  • flask, wfastcgi 패키지가 Python에 설치되어 있어야 합니다.
  • Flask 애플리케이션이 준비되어 있어야 합니다.

1. IIS 설치 및 설정

IIS가 설치되어 있지 않다면 다음 단계를 따라 설치하십시오.

  1. IIS 설치

    • 제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기를 선택합니다.
    • "인터넷 정보 서비스(IIS)"를 체크하고 설치를 진행합니다.
  2. CGI 기능 활성화

    • 제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기로 이동한 후, CGI를 활성화합니다. 이는 IIS에서 FastCGI를 사용하기 위함입니다.

                

    2. Python 및 Flask 설치

    먼저 IIS에서 실행할 Python 환경을 설치합니다.

    1. Python 공식 사이트에서 Python을 다운로드하고 설치합니다.

      • 설치할 때, Add Python to PATH 옵션을 반드시 체크합니다.
    2. Flask와 WSGI를 사용하기 위해 필요한 패키지 설치:

      pip install flask pip install wfastcgi
    3. wfastcgi 설정 wfastcgi를 IIS에서 사용할 수 있도록 설정해줍니다. 터미널에서 다음 명령을 실행합니다.

      wfastcgi-enable

      이 명령은 FastCGI 핸들러를 IIS에 추가하는 작업을 수행합니다. wfastcgi는 Python 경로를 포함하는 FastCGI 핸들러로 동작합니다.

    3. IIS에서 Flask 애플리케이션 설정

    1. 웹 사이트 추가

      • IIS 관리자에서 왼쪽 패널에서 사이트를 우클릭하고, 웹 사이트 추가를 선택합니다.
      • 사이트 이름, 물리적 경로(Flask 애플리케이션이 있는 경로), 호스트 이름을 입력합니다.
      • 확인을 클릭하여 웹 사이트를 생성합니다.
    2. FastCGI 모듈 추가

      • IIS 관리자에서 서버 이름을 선택한 후, FastCGI 설정을 엽니다.

      • 오른쪽 패널에서 FastCGI 응용 프로그램 추가를 선택하고, 경로에 Python 설치 경로를 입력합니다(예: C:\Python39\python.exe).

      • 인수에는 wfastcgi.py의 경로와 추가 설정을 입력합니다.

        C:\Python39\Lib\site-packages\wfastcgi.py


    3. 핸들러 매핑 설정

      • 웹 사이트를 선택하고 핸들러 매핑으로 이동한 후, 추가를 클릭합니다.
      • 요청 경로*를 입력하고, 모듈FastCgiModule, 실행 파일은 Python의 경로로 설정합니다(예: C:\Python39\python.exe).
      • 이름을 설정하고, 확인을 눌러 설정을 완료합니다.


      4. Flask 애플리케이션 실행 확인 웹 사이트가 설정되었으면, 브라우저에서 해당 도메인 또는 IP로 접속하여 Flask 애플리케이션이 정상적으로 작동하는지 확인합니다.

      1. http://localhost

      4. 기타 설정

      • 방화벽 규칙 추가: 외부에서 접속할 수 있도록 서버 방화벽 규칙에 해당 포트를 허용해야 합니다.
      • SSL 설정: HTTPS를 사용하려면 SSL 인증서를 추가로 설정할 수 있습니다.
      • Python, wfastcgi.py 경로를 Path에 추가합니다.


      • 환경 변수에 PYTHONPATH, WSGI_HANDLER 를 추가합니다.



      • 웹 ROOT 폴더와 PYTHON, WFASTCGI 파일 폴더 권한을 부여합니다.

       


      • 마지막으로 샘플 파일은 예제폴더의 공피하기를 이용해서 테스트를 하시면 될 것 같습니다.


      세팅이 끝나고 정리를 하려고 해보니 빠진 부분이 많이 있을 것 같다는 생각이 듭니다.
      그리고 이렇게 세팅을 하고 나니 보안적인 부분이 문제가 되는 것 같습니다. 

      댓글 쓰기

      댓글 목록