当前位置: 首页 > Linux, Python > 正文

CentOS安装配置Jupyter

https://www.voidking.com/2018/04/04/deve-centos-jupyter/

前言

如果在服务器上安装一个jupyter,那么就可以随时随地使用jupyter,很方便。

本文主要记录centos7上jupyter的安装方法,设置密码的方法,添加守护进程的方法,顺便给它设置个域名。

 

安装jupyter

参考《Jupyter notebook》或者官网文档,完成jupyter的安装。

1、升级pip
pip install --upgrade pip

2、安装jupyter
pip install jupyter

如果安装报错:

那么需要先安装python-devel
yum install python-devel

3、启动
jupyter notebook

如果报错:
socket.error: [Errno 99] Cannot assign requested address

那么在启动时加上参数:
jupyter notebook --ip 0.0.0.0 --allow-root

4、开放端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload

5、测试访问
访问地址:http://ip:8888
进入到jupyter登录页面,如下图:

设置密码

在安装完成jupyter后,我们看到,登录页面给出了三种登录方式。
方式一:复制启动时的token,粘贴到页面中,直接登录。
方式二:参照the documentation on how to enable a password进行配置。
方式三:复制启动时的token,粘贴到页面中,同时输入新密码,修改密码并登录。

这里,我们选择方式二,首先关闭jupyter,然后具体配置步骤如下:

1、生成jupyter配置文件
jupyter notebook --generate-config
该命令会生成文件/root/.jupyter/jupyter_notebook_config.py

2、设置密码
jupyter notebook password
提示两次输入密码,然后密码被hash化之后保存到jupyter_notebook_config.json中。

3、测试访问
再次启动jupyter,使用密码访问成功。

4、禁止启动浏览器
此时,启动jupyter时会默认启动本地浏览器,这个需要关闭。
vim /root/.jupyter/jupyter_notebook_config.py,修改一行:

5、指定根目录
在哪里执行jupyter notebook,哪里就是根目录,这里,我们也可以指定根目录。
(1)创建根目录
mkdir /opt/notebook

(2)vim /root/.jupyter/jupyter_notebook_config.py,修改一行:

守护进程

1、新建配置文件jupyter.conf
vim /etc/supervisor/jupyter.conf
写入内容如下:

2、重启supervisor
systemctl restart supervisord

设置域名

假设nginx的安装目录为/usr/local/nginx/
1、创建vhost目录
mkdir /usr/local/nginx/conf/vhost

2、修改nginx.conf,添加子配置目录

3、在vhost目录中新建jupyter.voidking.com.conf文件,内容为:

4、重启nginx
/usr/local/nginx/sbin/nginx -s reload

5、本机测试
(1)修改hosts文件,添加

然后用curl命令测试:
curl -L jupyter.notebook.com

6、设置域名解析
在dnspod上,设置A记录,主机记录填入jupyter,记录值填入服务器IP,稍等几分钟。理论上,此时即可使用域名访问自己的jupyter。

然而,遇到了坑,神坑。。。
浏览器访问 http://jupyter.voidking.com ,看到的是nginx的欢迎页面。excuse me? 再次使用curl命令测试,原来,拿到的确实是nginx的页面。那么问题来了?这次解析为什么没有生效?

使用systemctl重启nginx,欢迎页面;指定nginx配置文件重启nginx,欢迎页面;修改jupyter.voidking.com.conf,反向代理到8080的tomcat,欢迎页面;删除jupyter.voidking.com.conf文件,把内容写入nginx.conf,欢迎页面;把新添加内容放在nginx.conf的上部,作为第一个server配置,欢迎页面;换另外一个域名(jupyter.imsnail.com)设置解析,欢迎页面。。。

至此我严重怀疑,nginx有毛病!

卸载nginx

上次安装nginx是编译安装,按照下列步骤卸载。

1、删除安装目录

2、删除开机自启动文件
find / -name "nginx*"

rm -rf /usr/lib/systemd/system/nginx.service

systemctl daemon-reload

重新安装nginx

接下来,参考nginx官方文档,安装nginx。

1、创建/etc/yum.repos.d/nginx.repo,内容如下:

2、安装nginx
yum install nginx

3、设置开机启动
systemctl enable nginx

4、杀死nginx进程,重新启动
ps aux | grep nginx

kill -9 [nginx_id]

systemctl start nginx

5、查看运行状态
systemctl status nginx -l
发现配置文件位置为:/etc/nginx/nginx.conf

6、在/etc/nginx/conf.d/中创建jupyter.voidking.com.conf,内容同上。

7、重启nginx
systemctl restart nginx

接下来,见证奇迹的时刻!再次访问 http://jupyter.voidking.com ,依然是欢迎页面。。。

挣扎

大哥,好歹给个报错也行啊!没有报错,访问就欢迎,这是要闹哪样!决定再次换成反向代理8080端口的tomcat,测试一下是不是仍然出现欢迎页面。

1、先创建/var/data/client_body_temp和/var/data/proxy_temp两个目录
mkdir -p /var/data/client_body_temp
mkdir -p /var/data/proxy_temp

2、然后修改jupyter.voidking.com.conf文件为:

3、重启nginx
systemctl restart nginx

4、测试访问
访问 http://jupyter.voidking.com/ ,成功访问到tomcat!看来上一个nginx确实有问题,因为重装nginx前,同样的配置,上一个nginx给我返回的是欢迎界面!

5、jupyter.voidking.com.conf修改成:

重启nginx,测试访问,成功!但是,上面的配置可以访问jupyter页面,却无法连接kernel,也就是说无法执行python代码。

6、jupyter.voidking.com.conf修改为:

重启nginx,测试访问,成功;执行代码,成功。

后记

绕了好大一个圈。

首先是jupyter.voidking.com.conf的配置文件写错了,我也认为是配置文件写错了,于是各种修改配置文件,可无论我怎样修改配置文件,nginx只返回一个欢迎页面。

这就误导我认为nginx出了问题,于是开始了针对nginx的各种测试。修改配置也好,重启nginx也好,nginx只返回一个欢迎页面,于是我认定nginx除了问题。

重装nginx后,保持最开始的jupyter.voidking.com.conf配置,依然返回欢迎页面,但是修改配置文件,正常访问到tomcat,这就说明配置文件写错了。

综上,我认为这个锅是配置文件的。之所以最开始修改配置文件nginx毫无反应,孜孜不倦地返回欢迎页面,要么是存在僵尸进程,要么是浏览器存在缓存,干扰了测试,因为nginx坏的可能性太低。

本文固定链接: http://t.yjsec.com/index.php/2018/04/27/531/ | 下一站

该日志由 admin 于2018年04月27日发表在 Linux, Python 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: CentOS安装配置Jupyter | 下一站

CentOS安装配置Jupyter:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter