CentOS安装配置Jupyter
2022/3/26 7:23:01
本文主要是介绍CentOS安装配置Jupyter,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
如果在服务器上安装一个jupyter,那么就可以随时随地使用jupyter,很方便。
本文主要记录centos7上jupyter的安装方法,设置密码的方法,添加守护进程的方法,顺便给它设置个域名。
安装jupyter
参考《Jupyter notebook》或者官网文档,完成jupyter的安装。
1、升级pip
pip install --upgrade pip
2、安装jupyter
pip install jupyter
如果安装报错:
_scandir.c:14:20: fatal error: Python.h: No such file or directory
include <Python.h>
^
compilation terminated.
error: command 'gcc' failed with exit status 1
那么需要先安装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,修改一行:
c.NotebookApp.open_browser = False
5、指定根目录
在哪里执行jupyter notebook,哪里就是根目录,这里,我们也可以指定根目录。
(1)创建根目录
mkdir /opt/notebook
(2)vim /root/.jupyter/jupyter_notebook_config.py,修改一行:
c.NotebookApp.notebook_dir = u'/opt/notebook'
守护进程
参考《CentOS安装配置Supervisor》,安装配置好supervisor。
1、新建配置文件jupyter.conf
vim /etc/supervisor/jupyter.conf
写入内容如下:
[program:jupyter]
command=/usr/bin/jupyter notebook --ip 0.0.0.0 --allow-root
user=root
autostart=true
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log
2、重启supervisor
systemctl restart supervisord
设置域名
假设nginx的安装目录为/usr/local/nginx/。
1、创建vhost目录
mkdir /usr/local/nginx/conf/vhost
2、修改nginx.conf,添加子配置目录
include /usr/local/nginx/conf/vhost/*.conf;
3、在vhost目录中新建jupyter.voidking.com.conf文件,内容为:
server {
listen 80;
server_name jupyter.voidking.com;
charset utf-8;
location ~* /(api/kernels/[^/]+/(channels|iopub|shell|stdin)|terminals/websocket)/? {
proxy_pass http://127.0.0.1:8888;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }
}
4、重启nginx
/usr/local/nginx/sbin/nginx -s reload
5、本机测试
(1)修改hosts文件,添加
127.0.0.1 jupyter.notebook.com
然后用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、删除安装目录
rm -rf /usr/local/nginx
rm -rf /var/log/nginx
rm -rf /var/temp/nginx
rm -rf /var/temp/run/nginx
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,内容如下:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
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文件为:
server {
listen 80;
server_name jupyter.voidking.com;
charset utf-8;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_body_buffer_size 128k;
client_body_temp_path /var/data/client_body_temp;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path /var/data/proxy_temp;
proxy_pass http://127.0.0.1:8080; }
}
3、重启nginx
systemctl restart nginx
4、测试访问
访问 http://jupyter.voidking.com/ ,成功访问到tomcat!看来上一个nginx确实有问题,因为重装nginx前,同样的配置,上一个nginx给我返回的是欢迎界面!
5、jupyter.voidking.com.conf修改成:
server {
listen 80;
server_name jupyter.voidking.com;
charset utf-8;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_body_buffer_size 128k;
client_body_temp_path /var/data/client_body_temp;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path /var/data/proxy_temp;
proxy_pass http://127.0.0.1:8888; }
}
重启nginx,测试访问,成功!但是,上面的配置可以访问jupyter页面,却无法连接kernel,也就是说无法执行python代码。
6、jupyter.voidking.com.conf修改为:
server {
server_name jupyter.voidking.com;
listen 80;
location / {
proxy_pass http://127.0.0.1:8888/;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
}
}
重启nginx,测试访问,成功;执行代码,成功。
后记
绕了好大一个圈。
首先是jupyter.voidking.com.conf的配置文件写错了,我也认为是配置文件写错了,于是各种修改配置文件,可无论我怎样修改配置文件,nginx只返回一个欢迎页面。
这就误导我认为nginx出了问题,于是开始了针对nginx的各种测试。修改配置也好,重启nginx也好,nginx只返回一个欢迎页面,于是我认定nginx除了问题。
重装nginx后,保持最开始的jupyter.voidking.com.conf配置,依然返回欢迎页面,但是修改配置文件,正常访问到tomcat,这就说明配置文件写错了。
综上,我认为这个锅是配置文件的。之所以最开始修改配置文件nginx毫无反应,孜孜不倦地返回欢迎页面,要么是存在僵尸进程,要么是浏览器存在缓存,干扰了测试,因为nginx坏的可能性太低。
本文作者: 好好学习的郝本文链接: https://www.voidking.com/dev-centos-jupyter/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!源站会及时更新知识点及修正错误,阅读体验也更好。欢迎分享,欢迎收藏~
这篇关于CentOS安装配置Jupyter的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在使用平台私钥进行解密时提示 "私钥解密失败" 错误信息是什么原因?-icode9专业技术文章分享
- 2024-11-15Layui框架有哪些方式引入?-icode9专业技术文章分享
- 2024-11-15Layui框架中有哪些减少对全局环境的污染方法?-icode9专业技术文章分享
- 2024-11-15laydate怎么关闭自动的日期格式校验功能?-icode9专业技术文章分享
- 2024-11-15laydate怎么取消初始日期校验?-icode9专业技术文章分享
- 2024-11-15SendGrid 的邮件发送时,怎么设置回复邮箱?-icode9专业技术文章分享
- 2024-11-15使用 SendGrid API 发送邮件后获取到唯一的请求 ID?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 tags标签最多有多少个?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 怎么批量发送给多个人?-icode9专业技术文章分享
- 2024-11-15如何搭建web开发环境并实现 web项目在浏览器中访问?-icode9专业技术文章分享