본문 바로가기

볼봇의 코딩 생활/볼봇의 삽질

[Centos 6] Jupyter 와 nginx 연동 해보기

이전 글에서 파이썬 3.6 을 설치하고 실행 해봤다.

 

필자의 서버에서 "python3" 을 실행하면 파이썬 3.6 을 실행 할 수 있다.

 

이제 쥬피터를 서버에 올리고 여러분의 컴퓨터에서 본인 서버에 올린 쥬피터에

접속 할 수 있는 환경까지 구축 해 보겠다.

 

서버에는 기본적으로 python3.6과 nginx 가 설치되어 있고 잘 실행된다는 가정 하에 작성 한다.

만약, 안되어있다면 아래 글을 참고하여 nginx 와 파이썬을 설치 하자.

 

https://ballbot.tistory.com/8

 

Centos 6.5 nginx 설치 하기

최근에 팀을 새로 짜고 새로운 프로젝트를 진행함에 따라 서버도 초기화 하였다. 몇년간 아파치를 주로 애용해왔는데, 최근에는 Nginx (엔진엑스) 를 많이 쓴다고 해서 공부도 해볼겸 우선 설치를 해봤다. 당분간..

ballbot.tistory.com

 

https://ballbot.tistory.com/13

 

CentOS 6 에 Python 3 설치 하기

파이썬3 공부를 함에 따라 서버 컴퓨터에도 파이썬 버전을 업그레이드 해주고 싶은 마음이 문득 들었다. Jupyter 는 2 버전도 지원하지만 왠지 3 버전이 더 마음에 들기 때문에 서버에 쥬피터도 설치 할겸 파이썬..

ballbot.tistory.com

 

 

 

 

pip 를 통해 주피터 설치

파이썬과 pip 가 있다면 주피터 설치는 매우 쉽다.

pip3 install jupyter

 

쥬피터 설치를 다 했다면, 실행해보자.

jupyter notebook

 

root 계정에서는 아래 오류가 발생할것이다.

만약 오류가 발생하지 않는다면 본인은 루트 계정이 아니기 때문.

 

삑사리

 

물론 --allow-root 를 옵션으로 붙여주면 잘 실행 되지만, 보안상 문제가 있기 때문에 권장하지 않는다.

root 로 쥬피터를 실행하게되면 파이썬 코드를 실행하는 주피터 커널의 권한이 필요 이상으로 높아

해커가 접속한다면 뭔짓을 할지 알 수 없다.

 

여튼, 결론은 루트 쓰지 마세요 이니 새로운 계정을 하나 만들어서 주피터를 실행 하기로 했다.

 

계정 추가하는 부분은 생략 하고, 계정이 생성되었다는 가정 하에 계속 진행해보자.

 

주피터 설정 하기

jupyter notebook --generate-config

주피터 환경 설정 파일을 생성한다.

숨김 파일이라 생성 됬는지 보려면 ls -al 또는 ll 와 같은 명령어를 사용 해야 한다.

 

 

.jupyter 폴더로 들어 간다.

 

jupyter_notebook_config.py 파일을 vi 에디터로 열어서 몇가지 수정을 할 것이다.

1. 서버 포트

2. 로컬로 실행

 

 

c.NotebookApp.ip = 'localhost' 로 변경 한다.

 

c.NotebookApp.port = [port]

필자는 53000 번으로 했다. 내부에서 사용되는 아무 포트나사용 해도 된다.

 

어짜피 nginx 와 연동 해서 서브 도메인을 통해 접속하게 할 것이므로

포트는 아무거나 사용 하자.

 

이 환경설정 파일에서 비밀번호도 설정 할 수 있지만 그것은 다른 글로 빼서 다시 정리해본다.

 

이제 주피터를 다시 실행 해보자.

 

jupyter notebook

 

로그를 보면 http://localhost:53000 으로 열림을 확인 할 수 있다.

 

접속 하고 싶지만 서버 컴퓨터에는 브라우저가 없다.

이를 nginx 와 연동해서 우리 컴퓨터에서 방금 만든 주피터 서버에 접속 할 수 있도록 설정을 바꿔보자.

 

nginx 프록시 설정

이 글의 목표는 1차 도메인 "saintdev.kr" 에서 2차 도메인을 추가해 "jupyter.saintdev.kr" 로 접속하면

방금 연 주피터 서버에 접속 시키는 것 이다.

 

별로 어렵지 않다. 먼저 현재 사용중인 호스팅 업체 설정창으로 들어가 서브 도메인을 하나 추가 한다.

필자는 퍼니오를 사용하고 있으므로 퍼니오 사이트에서 설정 했다.

 

본인 환경에 맞게 서브 도메인 설정을 바꿔보자.

 

퍼니오는 참 편한듯.

 

이제 콘솔로 돌아와 nginx 설정을 준비한다.

cd /etc/nginx

 

nginx 설정 폴더로 이동한다. (환경마다 설정 파일 위치가 다를 수 있다. 참고하자.)

 

conf.d 폴더로 이동하여, default.conf 파일을 연다.

 

서버 설정

server {
    listen 80;
    server_name [ServerName];

    location / {
        proxy_pass http://localhost:[YourPort];
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Origin "";
    }
}

 

default.conf 파일 맨 하단에 위와 같은 설정을 추가 한다.

 

proxy_pass 부분에 주피터에서 설정한 포트를 설정 해야 하며 server_name 부분에는 위에서 설정한

2차 도메인을 설정 해야 한다.

 

저장하고 nginx 를 다시 시작 한다.

 

service nginx restart

 

 

설정을 모두 완료 했다.

이제 접속을 해보자.

 

주피터에 접속 했다.

 

 

기란!

 

다음 포스팅에서, 지금 보이는 로그인 페이지에 들어갈 비밀번호를 설정하는 부분을 다뤄보겠다.