Windows IIS에서 pgAdmin 4 서버 모드 설정 및 배포 방법
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 설치 및 웹사이트 구성
- 제어판(Control Panel)으로 이동하여 ‘Turn Windows features on or off'(Windows 기능 켜기/끄기) 옵션을 선택합니다.

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

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

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

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

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


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

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

IIS 웹 서버 뒤에서 pgAdmin 4 배포
IIS를 통해 pgAdmin에 접근하려면 IIS를 리버스 프록시로 구성해야 합니다. 이 설정을 통해 IIS는 들어오는 HTTP(S) 요청을 pgAdmin 웹 서버로 전달할 수 있습니다. 이렇게 하면 IIS의 기능(SSL 종료, 인증, 로드 밸런싱 등)을 활용하면서도 pgAdmin을 사용자에게 안전하게 노출할 수 있습니다.
- pgAdmin4.wsgi 파일을 복사하고 원본과 같은 위치에 새 파일을 pgAdmin4_wsgi.py라는 이름으로 저장합니다.
- 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>
- 위에서 지정한 로그 파일 경로가 IIS APPPOOL\PgAdmin 사용자에게 쓰기 가능해야 합니다.
(예:C:\inetpub\logs\pgadmin\→ 필요하다면 IIS_IUSRS 같은 일반 사용자에게 권한을 부여할 수도 있습니다.) - IIS APPPOOL\PgAdmin 사용자에게 venv 폴더에 대한 읽기 및 실행 권한을 부여합니다.
(예:C:\Users\Administrator\Desktop\pgadminVenv)
※ IIS APPPOOL\PgAdmin 사용자는 웹사이트 생성 후에만 나타납니다. - IIS APPPOOL\PgAdmin 사용자에게 시스템 Python에 대한 읽기 및 실행 권한을 부여합니다.
(예:C:\Users\Administrator\AppData\Local\Programs\Python\) ….\pgadminVenv\Lib\site-packages\pgadmin4경로에 config_local.py 파일을 생성하고 DATA_DIR에 대한 사용자 지정 경로를 추가합니다.
또한 해당 디렉터리에 IIS APPPOOL\PgAdmin 사용자에게 전체 권한을 부여해야 합니다.
(예:DATA_DIR = "C:\Users\Administrator\Desktop\pgadminDatadir\")- 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>
- 프로세스를 종료합니다.
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로 접속해 해당 계정으로 로그인합니다.