linux / python · 2021年7月21日 0

Centos搭建Jupyter+Nginx服务


Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。

本文讲述如何搭建Jupyter+Nginx服务,仅供学习与交流,请勿用于商业用途

一,搭建jupyter

系统环境 Centos7

安装python3及pip

yum install -y python3 python3-pip*

安装jupyter

pip3 install jupyter

生成jupyter配置文件

jupyter notebook --generate-config
Writing default config to: /root/.jupyter/jupyter_notebook_config.py

修改配置 配置文件在~/.jupyter/jupyter_notebook_config.py

# 允许远程访问
c.NotebookApp.allow_remote_access = True  
# 同意root用户启动
c.NotebookApp.allow_root = False
# 设置jupyter的资源主页路径,即[jupyter主页]  
c.NotebookApp.base_url = '/jupyter'  
##监听本地
c.NotebookApp.ip = '0.0.0.0'
# jupyter工作目录
c.NotebookApp.notebook_dir = '/home/nginx/jupyter/workspace/'  
# 启动jupyter notebook服务不启动浏览器
c.NotebookApp.open_browser = False  
# 启动密码策略
c.NotebookApp.password_required = True 

配置jupyter密码

jupyter notebook password

编辑启动脚本,方便管理以及使用jupyter

vim jupyter_start_helper.sh
#!/bin/bash
case $1 in
start)
jupyter notebook --allow-root &> /home/nginx/jupyter/workspace/jupyter.log &
echo "started!!!"
echo "某龙兄牛逼!"
;;
stop)
killall jupyter-notebook
echo "stop!!!"
echo "某龙兄牛逼!"
;;
*)
echo "pls input start | stop"
esac

脚本增加x权限,执行脚本,启动jupyter服务

./jupyter_start_helper.sh start

在本地浏览器访问本地8888端口即可使用

firefox http://localhost:8888

这只是对jupyter的简单体验,本文目标是为了方便开发团队访问本机使用jupyter ,或者云主机使用jupyter,所以下面开始配置Nginx服务!

二,搭建Nginx

编译安装 YUM安装 环境变量 不多逼逼(省略五万字)

编写子配置文件,反向代理jupyter

server {
         listen 80;
         server_name jupyter.doragon.xyz;
         location /jupyter {
         proxy_pass http://jupyter;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header Host $host;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_http_version      1.1;
         # websocket support
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "Upgrade";
         proxy_read_timeout    86400;
         proxy_redirect          off;
      }
         }

upstream jupyter {
     server localhost:8888;
         }

防火墙放行8888和80端口

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8888/tcp
firewall-cmd --reload

启动nginx服务

nginx

Completed!浏览器访问服务器即可