Back to blog

Windows IIS에서 pgAdmin 4 서버 모드 설정 및 배포 방법

August 10, 2026

Yogesh Mahajan
2025년 8월 22일

관계형 데이터베이스, 특히 PostgreSQL을 관리할 때 직관적이고 사용하기 쉬운 인터페이스는 관리 및 개발 업무를 크게 단순화할 수 있습니다. pgAdmin 4는 PostgreSQL 및 EnterpriseDB의 EDB Advanced Server 같은 파생 데이터베이스를 위한 강력한 무료 오픈소스 그래픽 관리 도구입니다.

pgAdmin은 다음 두 가지 주요 모드로 설치할 수 있습니다.

  • 데스크톱 모드: 독립 실행형 애플리케이션으로 구동
  • 서버 모드: 웹 브라우저를 통한 원격 접근 지원

서버 모드에서는 Apache2 또는 Nginx 같은 웹 서버 뒤에 배치할 수 있어 팀과 프로덕션 환경에서도 확장 가능한 솔루션을 제공합니다. 이 글에서는 Windows IIS 뒤에서 pgAdmin 4를 서버 모드로 설정하고 배포하는 방법을 단계별로 안내합니다.


Windows에서 pgAdmin 4 서버 모드 설정

IIS 뒤에서 pgAdmin을 실행하려면 먼저 서버 모드에 필요한 Python 환경과 WSGI 서버를 설정해야 합니다.

1. Python 및 pip 설치

pgAdmin은 Python 패키지로 배포되며 pip로 설치할 수 있습니다. 따라서 pgAdmin을 설치하기 전에 Windows에 Python과 pip가 있어야 합니다.

  • Python 공식 웹사이트에서 최신 버전 다운로드
  • 설치 시 “Add Python to PATH” 체크
  • 설치 후 다음 명령으로 버전 확인
PS C:\Users\Administrator> python --version
Python 3.13.4

PS C:\Users\Administrator> pip --version
pip 25.2 from C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip (python 3.13)

2. 가상 환경 생성 및 활성화

pgAdmin 설치를 다른 Python 패키지와 독립적으로 관리할 수 있도록 가상 환경을 생성한 뒤 활성화하세요.

PS C:\Users\Administrator> python -m venv pgadminVenv

PS C:\Users\Administrator> .\pgadminVenv\Scripts\Activate.ps1
(pgadminVenv) PS C:\Users\Administrat

3. pgAdmin 4 설치

(pgadminVenv) PS C:\Users\Administrator> pip install pgadmin4
Collecting pgadmin4
  Downloading pgadmin4-9.7-py3-none-any.whl.metadata (2.8 kB)

4. Waitress 설치

pgAdmin은 기본적으로 Werkzeug를 WSGI(Web Server Gateway Interface) 서버로 사용하지만 이는 개발 환경용입니다. 운영 환경에서는 Waitress를 설치해 안정성을 강화합니다.

(pgadminVenv) PS C:\Users\Administrator> pip install waitress
Collecting pip

IIS 설치 및 웹사이트 구성

  1. 제어판(Control Panel)으로 이동하여 ‘Turn Windows features on or off'(Windows 기능 켜기/끄기) 옵션을 선택합니다.

Windows 기능 켜기 또는 끄기 화면

  1. ‘Add Roles and Features'(역할 및 기능 추가)를 선택하고 Next를 클릭합니다.

Windows Server 역할 및 기능 추가 메뉴

  1. ‘Role feature-based'(역할 기반 설치)를 선택합니다.

IIS 역할 기반 설치 유형 선택 화면

  1. 서버 풀을 선택하고 Next를 클릭합니다. Web Server (IIS)를 선택한 뒤 Next, 그리고 다시 Next를 클릭합니다.

Windows Server에서 Web Server IIS 역할 선택

  1. 설치할 모듈을 확인하고 Install을 클릭합니다. 설치가 성공적으로 완료되면 마법사를 닫습니다.

IIS 역할 및 기능 설치 확인 화면

  1. httpPlatformHandler를 다운로드하여 설치합니다. httpPlatformHandler는 Python과 같은 외부 애플리케이션에 대한 요청을 관리하고 프록시하기 위해 필요하며 IIS를 연결하는 리버스 프록시 역할을 합니다.
  2. IIS Manager를 열고 Management 섹션에서 Configuration Editor를 선택합니다.

IIS Manager의 Configuration Editor 메뉴

IIS Configuration Editor 화면

  1. system.webserver를 선택한 후 handler를 선택하고 오른쪽 패널에서 ‘Unlock section’을 클릭합니다.

IIS handler 섹션 Unlock 설정

  1. Sites 컨텍스트 메뉴에서 ‘Add Website’를 클릭합니다.
  2. 웹사이트 이름을 입력하고 venv 내부의 ‘pgadmin’ site package까지 물리적 경로를 선택합니다.
  3. 호스트, 포트 등에 따라 바인딩 설정을 변경합니다. 체크박스 ‘Start website immediately’의 체크를 해제합니다.

IIS에서 pgAdmin 웹사이트 바인딩 설정

IIS 웹 서버 뒤에서 pgAdmin 4 배포

IIS를 통해 pgAdmin에 접근하려면 IIS를 리버스 프록시로 구성해야 합니다. 이 설정을 통해 IIS는 들어오는 HTTP(S) 요청을 pgAdmin 웹 서버로 전달할 수 있습니다. 이렇게 하면 IIS의 기능(SSL 종료, 인증, 로드 밸런싱 등)을 활용하면서도 pgAdmin을 사용자에게 안전하게 노출할 수 있습니다.

  1. pgAdmin4.wsgi 파일을 복사하고 원본과 같은 위치에 새 파일을 pgAdmin4_wsgi.py라는 이름으로 저장합니다.
  2. pgAdmin4_wsgi.py가 있는 디렉터리에 web.config 파일을 추가합니다. 아래는 전형적인 web.config 파일 예시입니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="httpPlatformHandler" 
                 path="*" 
                 verb="*" 
                 modules="httpPlatformHandler" 
                 resourceType="Unspecified" requireAccess="Script" />
        </handlers>
        <httpPlatform
            stdoutLogEnabled="true" 
            stdoutLogFile="C:\inetpub\logs\pgadmin\pgadmin.log" 
            startupTimeLimit="10" 
            processPath="C:\Users\Administrator\Desktop\pgadminVenv\Scripts\python.exe" 
            arguments="-m waitress --port %HTTP_PLATFORM_PORT% wsgi:application" />
    </system.webServer>
</configuration>
  1. 위에서 지정한 로그 파일 경로가 IIS APPPOOL\PgAdmin 사용자에게 쓰기 가능해야 합니다.
    (예: C:\inetpub\logs\pgadmin\ → 필요하다면 IIS_IUSRS 같은 일반 사용자에게 권한을 부여할 수도 있습니다.)
  2. IIS APPPOOL\PgAdmin 사용자에게 venv 폴더에 대한 읽기 및 실행 권한을 부여합니다.
    (예: C:\Users\Administrator\Desktop\pgadminVenv)
    ※ IIS APPPOOL\PgAdmin 사용자는 웹사이트 생성 후에만 나타납니다.
  3. IIS APPPOOL\PgAdmin 사용자에게 시스템 Python에 대한 읽기 및 실행 권한을 부여합니다.
    (예: C:\Users\Administrator\AppData\Local\Programs\Python\)
  4. ….\pgadminVenv\Lib\site-packages\pgadmin4 경로에 config_local.py 파일을 생성하고 DATA_DIR에 대한 사용자 지정 경로를 추가합니다.
    또한 해당 디렉터리에 IIS APPPOOL\PgAdmin 사용자에게 전체 권한을 부여해야 합니다.
    (예: DATA_DIR = "C:\Users\Administrator\Desktop\pgadminDatadir\")
  5. Python venv에서 pgadmin4 명령을 실행하고 관리자 이메일과 비밀번호를 입력합니다.
(pgadminVenv) PS C:\Users\Administrator> pgadmin4
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: edb@edb.com
Password:
Retype password:
Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser.
 * Serving Flask app 'pgadmin'
 * Debug mode: off
(pgadminVenv) PS C:\Users\Administrator>
  1. 프로세스를 종료합니다.

pgAdmin 4 접속

브라우저에서 바인딩 설정에 입력한 host:port로 접속합니다. 이전에 설정한 이메일과 비밀번호를 사용해 로그인합니다.


결론

IIS를 pgAdmin 서버의 리버스 프록시로 설정하면 Windows 환경과의 통합성이 향상되고 사용자 접근성도 강화됩니다. 문제가 발생할 경우 pgadmin-support@postgresql.org로 이메일을 보내거나 GitHub에 이슈를 등록할 수 있습니다.

pgAdmin 4 Windows IIS 설정 FAQ

pgAdmin 4의 데스크톱 모드와 서버 모드는 무엇이 다른가요?

데스크톱 모드는 독립 실행형 애플리케이션으로 구동됩니다. 서버 모드는 웹 브라우저를 통한 원격 접근을 지원하며 Apache2, Nginx 또는 IIS 같은 웹 서버 뒤에 배치할 수 있습니다.

Windows IIS에서 pgAdmin 4 서버 모드를 실행하려면 무엇이 필요한가요?

Windows에 Python과 pip를 설치하고 pgAdmin 전용 가상 환경을 만든 뒤 pgAdmin 4와 Waitress를 설치해야 합니다. IIS와 httpPlatformHandler도 설치하고 웹사이트, 권한 및 web.config를 구성해야 합니다.

pgAdmin 4 운영 환경에서 Waitress를 사용하는 이유는 무엇인가요?

pgAdmin이 기본적으로 사용하는 Werkzeug WSGI 서버는 개발 환경용입니다. 이 글에서는 운영 환경의 안정성을 강화하기 위해 Waitress를 설치하고 IIS가 요청을 전달하도록 구성합니다.

IIS APPPOOL\PgAdmin 사용자에게 어떤 권한을 부여해야 하나요?

로그 디렉터리에는 쓰기 권한이 필요하며 Python 가상 환경과 시스템 Python에는 읽기 및 실행 권한이 필요합니다. config_local.py에서 지정한 DATA_DIR 디렉터리에는 전체 권한을 부여해야 합니다.

pgAdmin 4의 초기 관리자 계정은 어떻게 생성하나요?

Python 가상 환경에서 pgadmin4 명령을 실행한 뒤 관리자 이메일과 비밀번호를 입력합니다. 초기 설정이 끝나면 프로세스를 종료하고 IIS에 지정한 host:port로 접속해 해당 계정으로 로그인합니다.

메일: salesinquiry@enterprisedb.com

Share this