原文:https://zhuanlan.zhihu.com/p/340249373
搭建环境的前期准备
- 一台服务器
 
- 一个备案的域名
 
- ssl证书(在阿里云搜索ssl,可以免费申请)
 
Jupyter 环境的简单安装
安装anconda
安装 Jupyter Notebook
1
   | (base)$ conda install jupyter notebook
   | 
 
1 2 3 4
   | (base)$ python >>> from notebook.auth import passwd >>> passwd() # 这一步之后输入你自己的密码并重复输入一次。会输出一长串加密后的东西,将其复制下来后面要用!!! >>> quit() # 退出 Python 环境
   | 
 
ssl申请后,点击下载,获得一个 pem 格式的证书文件和一个 key 格式的文件,并上传到服务器的文件夹里后面要用。
1 2 3
   | (base)$ jupyter notebook --generate-config   创建配置文件 (base)$ cd ~/.jupyter # 进入 jupyter 配置目录  (base)$ vim jupyter_notebook_config.py # 打开配置文件
   | 
 
1 2 3 4 5 6 7 8 9
   | c.NotebookApp.allow_origin = '*' c.NotebookApp.allow_remote_access = True c.NotebookApp.certfile = '/xxx/xx.com.pem' # 这里是 pem 证书文件的路径 c.NotebookApp.ip = '127.0.0.1' # 除非 IP 裸连否则不要改成 '*' c.NotebookApp.keyfile = '/xxx/xx.com.key' # 这里是 key 文件的路径 c.NotebookApp.notebook_dir = '/xxx/jupyter' # 这里是你想让 Jupyter 放项目的文件夹 c.NotebookApp.password = 'xxxxxxxx'# 这里放你刚刚设置密码的时候生成的那一长串东西 c.NotebookApp.open_browser = False # 服务器没有浏览器 开什么开 c.NotebookApp.port = 1111 # 这里是 Jupyter 的端口,自己选个就行,反正后面要做端口转发
   | 
 
- 完成了jupyter安装,运行测试(要先切换到对应的Python环境)
 
1
   | (base)$ jupyter notebook --allow-root
   | 
 
jupyter通过域名访问
(base)$ cd /www/server/nginx/config #直接进入nginx的配置目录
最初的配置目录没有jupyter.conf,要把jupyter的配置信息写入到jupyter.conf后,再让nginx.conf调用。
1
   | (base)$ vim jupyter.conf
   | 
 
写入以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
   | server {         # 将服务转发到 443 端口,通过 https 访问         listen       443 ssl;
          # 这里填写你的域名         server_name  xxx.com;
          # ssl 配置,填写你的 pem 和 key 路径         ssl on;         ssl_certificate      /home/ubuntu/.jupyter/xxx.pem;         ssl_certificate_key  /home/ubuntu/.jupyter/xxx.key;
          ssl_session_cache    shared:SSL:1m;         ssl_session_timeout  5m;
          ssl_ciphers  HIGH:!aNULL:!MD5;         ssl_prefer_server_ciphers  on;
          # 下面这段是 Websocket 配置         location / {               # 注意这里 8888 改成你自己用的端口,更注意这里放 https 而不是 http               proxy_pass https://127.0.0.1:8888;               index  dashboard index;
                #websocket额外配置开始               proxy_http_version 1.1;               proxy_set_header Upgrade $http_upgrade;               proxy_set_header Connection "upgrade";               # 连接超时时间,不能设置太长会浪费连接资源               proxy_connect_timeout 60s;               # 读超时时间               proxy_read_timeout 500s;               # 写超时时间               proxy_send_timeout 500s;               #websocket额外配置结束
                proxy_set_header Host       $http_host;               proxy_set_header X-Real-IP $remote_addr;               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;               proxy_set_header X-Forwarded-Proto $scheme;         }
          # 日志路径设置         access_log  /home/ubuntu/.jupyter/jupyter.log;         error_log   /home/ubuntu/.jupyter/error.log; }
  | 
 
- **(重要)引用jupyter.conf:**在nginx.conf的http开头的括号内,添加
include jupyter.conf  来 
1 2 3 4
   | (base) $ vim nginx.conf #在http括号内添加{        include jupyter.conf }
   | 
 
- 重启nginx服务,如果期间遇到问题,百度查询下报错的信息,基本能解决
 
- 开启jupyter:后台启动jupyter并保持运行,把运行信息写入jupyter.log
 
1
   | (base) ubuntu$ nohup jupyter notebook --allow-root > jupyter.log 2>&1 & # 后台运行 Jupyter
   | 
 
相关推荐
jupyter插件