Jupyter Notebook · 5 min read · Sep 11, 2025

Debian 12에서 Nginx 프록시와 함께 Jupyter Notebook 설치하는 방법

Jupyter는 대화형 컴퓨팅 및 데이터 과학을 위한 무료 오픈 소스 웹 애플리케이션입니다. Jupyter는 모든 프로그래밍 언어를 지원하며, 기능이 풍부하고 탭이 있는 다중 노트북 편집 환경을 제공하는 JupyterLab, 경량화되고 단순화된 노트북 저작을 위한 Notebook, Qtconsole 등 여러 소프트웨어를 제공합니다.

이 튜토리얼에서는 Debian 12 서버에 Jupyter를 설치하고 Jupyter Notebook을 구성하는 방법을 배웁니다. 또한 Jupyter Notebook을 비밀번호로 보호하고 systemd 서비스로 Jupyter Notebook을 실행합니다. 마지막으로 Jupyter Notebook 설치를 위한 리버스 프록시로 Nginx를 설치하고 구성합니다.

전제 조건

시작하기 전에 다음 사항을 확인하세요:

  • Debian 12 서버
  • 관리자 권한이 있는 비루트 사용자
  • 서버 IP 주소를 가리키는 도메인 이름

Python 패키지 설치

Jupyter를 설치하기 전에 Python, Pip Python 패키지 관리자, Python 가상 환경을 생성하기 위한 venv, git을 설치해야 합니다. 이 섹션에서는 APT 패키지 관리자를 사용하여 이러한 패키지를 설치합니다.

먼저 아래 명령어를 실행하여 Debian 패키지 인덱스를 업데이트합니다.

sudo apt update

update repo

이제 Python과 Pip, venv, Python Dev 패키지와 같은 종속성을 설치합니다. 설치를 확인하려면 ‘ Y ‘를 입력합니다.

sudo apt install python3 python3-pip python3-dev python3-venv git

install packages

설치가 완료되면 아래의 ‘ pip3 ‘ 명령어를 실행하여 Pip 버전을 업그레이드합니다.

pip3 install --break-system-package --upgrade pip

이제 아래 명령어로 Python과 Pip 버전을 확인합니다.

python3 --version  
pip3 --version

아래에서 Python 3.11과 Pip 24.3이 설치된 것을 확인할 수 있습니다.

check pip and python

Python 가상 환경 설정

Python과 기타 종속성을 설치한 후, Jupyter 설치를 위한 새로운 Python 가상 환경을 생성합니다. 이를 통해 Jupyter 설치가 가상 환경에 격리됩니다. 또한 전용 Linux 사용자가 필요하므로 사용자가 준비되어 있는지 확인하세요.

아래 명령어로 사용자로 로그인합니다.

su - username

아래의 ‘ python3 ‘ 명령어를 실행하여 새로운 Python 가상 환경 ‘ venv ‘를 생성합니다. 이렇게 하면 시스템과는 별개로 가상 환경에 Python과 Pip가 설치됩니다.

python3 -m venv venv

venv ‘ Python 가상 환경을 활성화합니다. 활성화되면 셸 프롬프트가 ‘ (venv) username@host … ‘와 같이 변경됩니다.

source venv/bin/activate

create venv

venv ‘를 비활성화하려면 아래의 ‘ deactivate ‘ 명령어를 실행합니다.

deactivate

Jupyter 설치

이제 Python 가상 환경을 생성하고 활성화했으므로, Pip Python 패키지 관리자를 통해 Jupyter 설치를 시작할 수 있습니다.

Jupyter를 설치하려면 아래의 ‘ pip3 ‘ 명령어를 실행합니다.

pip3 install jupyter

아래에서 가상 환경에 Jupyter가 설치되는 것을 확인할 수 있습니다.

install juopyter

설치가 완료되면 아래 명령어로 Jupyter 버전을 확인합니다.

jupyter --version

다음 출력에서 설치된 각 Jupyter 구성 요소의 버전을 확인할 수 있습니다.

check version

Jupyter Notebook에서 인증 활성화

Jupyter를 설치한 후, 비밀번호 인증을 활성화하여 Jupyter Notebook 설치를 구성합니다.

먼저 아래 명령어를 실행하여 Jupyter Notebook의 구성을 생성합니다. 이렇게 하면 ‘ ~/.jupyter/jupyter_notebook_config.py ‘에 새로운 구성이 생성됩니다.

jupyter notebook --geenrate-config

이제 아래 명령어를 사용하여 Jupyter Notebook의 비밀번호를 설정합니다. 프롬프트가 나타나면 비밀번호를 입력하고 반복합니다.

jupyter notebook password

마지막으로 ‘venv’ 가상 환경에서 로그아웃하려면 ‘ deactivate ‘ 명령어를 실행합니다.

deactivate

Jupyter Notebook을 systemd 서비스로 실행

이 섹션에서는 Jupyter Notebook을 실행할 새로운 systemd 서비스를 생성합니다. 이를 통해 Jupyter Notebook은 systemd 서비스로 백그라운드에서 실행되며, ‘ systemctl ‘ 유틸리티로 쉽게 관리할 수 있습니다.

아래의 ‘ nano ‘ 편집기를 사용하여 새로운 systemd 서비스 파일 ‘ /etc/systemd/system/jupyter.service ‘를 생성합니다.

sudo nano /etc/systemd/system/jupyter.service

Jupyter Notebook을 systemd 서비스로 실행하기 위해 아래 구성을 삽입합니다.

[Unit]  
Description=Jupyter Notebook  
  
[Service]  
Type=simple  
PIDFile=/run/jupyter.pid  
ExecStart=/home/alice/venv/bin/jupyter-notebook --config=/home/alice/.jupyter/jupyter_notebook_config.py --allow-root  
User=root  
Group=root  
WorkingDirectory=/home/alice/venv  
Restart=always  
RestartSec=10  
  
[Install]  
WantedBy=multi-user.target

파일을 저장하고 편집기를 종료합니다.

이제 아래의 ‘ systemctl ‘ 명령어를 실행하여 systemd 관리자를 재시작하고 변경 사항을 적용합니다.

sudo systemctl daemon-reload

마지막으로 아래 명령어로 ‘ jupyter ‘ 서비스를 시작하고 활성화합니다.

sudo systemctl enable --now jupyter  
sudo systemctl status jupyter

다음 출력에서 ‘ jupyter ‘ 서비스가 시스템에서 실행되고 있는 것을 확인할 수 있습니다.

jupyter status

Jupyter Notebook에 원격 액세스 허용

이 섹션에서는 Jupyter에 대한 원격 액세스를 활성화합니다. 이는 Jupyter 설치 앞에 리버스 프록시를 설정하려는 경우 반드시 수행해야 합니다.

사용자로 로그인하고 아래의 ‘nano’ 편집기를 사용하여 Jupyter 구성 ‘~/.jupyter/jupyter_notebook_config.py’를 엽니다.

su - username  
nano ~/.jupyter/jupyter_notebook_config.py

원격 액세스를 활성화하려면 ‘ c.ServerApp.allow_remote_access ‘ 옵션의 주석을 제거하고 값을 ‘ True ‘로 변경합니다.

c.ServerApp.allow_remote_access = True

작업이 완료되면 파일을 저장하고 종료합니다.

다음으로 아래의 ‘ systemctl ‘ 명령어를 실행하여 ‘ jupyter ‘ 서비스를 재시작하고 변경 사항을 적용합니다. 이렇게 하면 새로운 토큰이 생성되며 로그 파일에서 찾을 수 있습니다.

sudo systemctl restart jupyter

마지막으로 아래 명령어로 ‘ jupyter ‘ 서비스 상태를 확인합니다.

sudo systemctl status jupyter

메시지 하단을 살펴보고 Jupyter Notebook에 대해 생성된 토큰을 복사합니다.

token

Nginx를 리버스 프록시로 설정

이제 Jupyter Notebook이 서비스로 실행되고 있으므로, 다음 단계는 Nginx를 설치하고 Jupyter Notebook의 리버스 프록시로 구성하는 것입니다. 이렇게 하면 Jupyter Notebook을 HTTPS로 쉽게 보호할 수 있습니다.

아래의 ‘ apt ‘ 명령어로 ‘ nginx ‘ 패키지를 설치합니다.

sudo apt install nginx -y

install nginx

설치가 완료되면 아래의 ‘ nano ‘ 편집기를 사용하여 새로운 Nginx 서버 블록 구성 ‘ /etc/nginx/sites-available/jupyter ‘를 생성합니다.

sudo nano /etc/nginx/sites-available/jupyter

Jupyter Notebook의 리버스 프록시로 Nginx를 설정하기 위해 아래 구성을 삽입합니다. ‘ server_name ‘ 매개변수를 도메인 이름으로 변경해야 합니다.

server {  
listen 80;  
server_name lab.howtoforge.local;  
  
access_log /var/log/nginx/howtoforge.local.access.log;  
error_log /var/log/nginx/howtoforge.local.error.log;  
  
location / {  
proxy_pass http://127.0.0.1:8888;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_set_header X-Real-IP $remote_addr;  
proxy_set_header Host $http_host;  
proxy_http_version 1.1;  
proxy_redirect off;  
proxy_buffering off;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Connection "upgrade";  
proxy_read_timeout 86400;  
}  
}

파일을 저장하고 편집기를 종료합니다.

다음으로 아래 명령어를 실행하여 ‘ jupyter ‘ 서버 블록을 활성화하고 Nginx 구성을 확인합니다.

sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/  
sudo nginx -t

적절한 Nginx 설정이 있으면 ‘ syntax is ok - test is successful ‘와 같은 출력을 볼 수 있습니다.

setup nginx

마지막으로 아래의 ‘ systemctl ‘ 명령어를 실행하여 Nginx 웹 서버를 재시작하고 Nginx 상태를 확인합니다.

sudo systemctl restart nginx  
sudo systemctl status nginx

Nginx가 실행 중이면 다음과 같은 출력을 볼 수 있습니다:

check nginx

Jupyter Notebook에 접근하기

웹 브라우저를 열고 Jupyter Notebook 설치의 도메인 이름인 http://lab.howtoforge.local/에 방문합니다. 설치가 성공적이라면 Jupyter 비밀번호 인증이 요청됩니다.

비밀번호를 입력하고 ‘ Log In ‘을 클릭합니다.

login

이제 다음과 같은 Jupyter Notebook 대시보드를 볼 수 있습니다:

dashboard

notebook

결론

축하합니다! Debian 12 서버에 Jupyter Notebook 설치를 완료했습니다. Jupyter Notebook을 설치하고 인증으로 보호했습니다. 또한 Jupyter Notebook의 리버스 프록시로 Nginx를 구성했습니다. 다음 단계로는 Jupyter Notebook을 보호하기 위해 SSL 인증서를 추가하고 Jupyter Notebook 기능을 확장하기 위해 몇 가지 확장 프로그램을 설치하고자 합니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.