阿里云服务器部署Jupyter私房菜

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
NLP自然语言处理_高级版,每接口累计50万次
简介: 在阿里云ECS上,选用2核2G的配置,安装Ubuntu 22.04,然后部署Nginx作为Jupyter Notebook的反向代理。安装Miniconda3,配置清华TUNA镜像源以加速下载。创建Jupyter Notebook,设置密码和远程访问,通过Nginx配置实现安全访问。整个过程包括安装Jupyter,修改Nginx配置,最后通过浏览器访问 Notebook。

一、准备工作

1.准备一台云服务器

我选择的是阿里云ECS,配置:2核2G,SSD40G,3M固定带宽(今年销冠)
aliyun_99.png

服务器的操作系统选用ubuntu 22.04。
ubuntu_env.png

2.安装nginx,用于反向代理jupyter-notebook服务

3.放通jupyter访问端口

image.png

二、安装包管理器及python环境

1. 通过清华TUNA镜像站下载miniconda

从清华源下载miniconda安装脚本

$ wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_23.11.0-2-Linux-x86_64.sh

运行安装miniconda

$ sh  Miniconda3-py39_23.11.0-2-Linux-x86_64.sh

进入conda环境(另外一种方式可以在安装过程中选择conda初始化脚本写入./bashrc文件,只是我没有选择此类方式)

$ eval "$(/home/forrest/miniconda3/bin/conda shell.zsh hook)"

image.png

进入conda环境后,想要退出怎么办?

$(base) conda deactivate

为什么不用anaconda?
庙小装不下(你在开玩笑?),Anaconda包含conda、Python和超过1500个科学包及其依赖项,预装了大量的库,如NumPy, Pandas, Scipy, Matplotlib等,安装包大概在3 GB。从来不点全家桶(啥啥都用,难道不香吗?),起步阶段上手python,没有更多的需求,趟过新手村了,进阶的时候,我们再根据自己使用需求去有选择性地安装想用的工具。

2. 创建配置文件.condarc

配置文件不是默认安装,小伙伴们可以手动安装一下

$ (base) conda config --add channels conda-forge

image.png

3. 将conda源替换成清华源

通过修改/.condarc来使用 TUNA 镜像源,不仅TUNA 提供了 Anaconda 仓库与第三方源,更重要的是速度够快(快不快,谁用谁知道!)

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

4. 清除索引缓存

确保使用清华源镜像站提供的索引,需要执行清除缓存的动作

(base)$ conda clean -i

三、安装Jupyter-Notebook

1.下载安装jupyter notebook

(base)$ conda install jupyter notebook

2.配置密码

(base)$ python
Python 3.9.18 (main, Sep 11 2023, 13:41:44)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from jupyter_server.auth import passwd;
>>> passwd() # 输入完两遍密码后,会生成哈希加密字符串,保留备用。
>>> quit() # 退出当前环境

notebook_passwd.png

3.配置nb参数

生成nb配置文件,并通过VIM对配置文件进行修改

(base)$ jupyter notebook --generate-config

进入配置目录并找到配置文件
(base)$ cd ~/.jupyter 

修改配置文件
(base)$ vim jupyter_notebook_config.py

notebook_config.png

注释符号#删除,并重新输入相应参数,并通过:wq进行保存

允许任何来源的请求
c.ServerApp.allow_origin = '*'

允许远程访问
c.ServerApp.allow_remote_access = True

jupyter notebook所在主机IP地址
c.ServerApp.ip = 'localhost'

生成项目文件的保存路径
c.ServerApp.notebook_dir = '/home/forrest/iPython'

本地浏览器打开(关闭)
c.ServerApp.open_browser = False

配置密码时生成的字符串写入进去
c.ServerApp.password = 'hashed_password' 

服务器端本地IP访问端口设置(不是公网地址端口)
c.ServerApp.port = 8888

4. 测试jupyter

(base)$ jupyter notebook

jupyter_notebook_status.png

四、配置Nginx

1.修改/etc/nginx/nginx.conf,添加include /etc/nginx/jupyter.conf

image.png

2.修改jupyter.conf

image.png

3.重新启动nginx服务,并启动jupyter服务

后台运行
(base)$ nohup jupyter notebook --allow-root > jupyter.log 2>&1 &

#切换root用户
(base)$ sudo -i

# 重新启动nginx
$ systemctl restart nginx

ps_jupyter_notebook.png

五、通过浏览器登录jupyter-notebook

test.png

相关实践学习
ECS云服务器新手上路
本实验会自动创建一台ECS实例。首先,远程登陆ECS实例,并部署应用。然后,登陆管理控制台,并对这台ECS实例进行管理操作。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
人工智能 网络安全 开发工具
视觉智能开放平台操作报错合集之服务部署在pdd的服务器,调用报错:The SSL connection could not be established,该如何解决
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
|
9天前
|
弹性计算 数据可视化 安全
高效部署企业门户网站【阿里云云效平台详细指南】
使用阿里云云效部署企业网站涉及备案域名、ECS、VPC、云效代码仓库和流水线。一键部署通过ROS快速配置,手动部署则需详细配置流水线,包括代码源、构建、部署到ECS。整个流程约10分钟,但需注意网络问题可能导致的异常。一键部署适合快速启动,手动部署适合定制化。文档详细,但可增加常见问题解答和自动化脚本支持。
129 2
高效部署企业门户网站【阿里云云效平台详细指南】
|
2天前
|
NoSQL 关系型数据库 MySQL
多机部署:打造内网服务器集群
在多机部署教程中,了解如何配置分布式应用如Laravel以使用Redis同步用户状态。关键步骤包括:修改MySQL的`bind-address`至内网IP,重启服务;同样修改Redis的`bind`,重启服务;以及调整Elasticsearch的`network.host`和`discovery.seed_hosts`,并重启。通过这些步骤,确保服务间能内网通信,实现多服务器状态同步。
12 2
|
6天前
|
敏捷开发 弹性计算 负载均衡
阿里云云效产品使用问题之如何将应用部署到部署组的某一台特定服务器上
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
8天前
|
监控 JavaScript Serverless
函数计算产品使用问题之如何手动上传Nuxt3打包的代码到阿里云函数计算(FC)进行部署
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
20小时前
|
存储 弹性计算 运维
阿里云容器服务Kubernetes版(ACK)部署与管理体验评测
阿里云容器服务Kubernetes版(ACK)是一个功能全面的托管Kubernetes服务,它为企业提供了快速、灵活的云上应用管理能力。
10 0
|
6天前
|
人工智能 安全 网络协议
如何保护应用?可快速部署的WAF服务器分享
技术分享:分布式数据库DNS服务器的架构思路
7 0
|
6天前
|
前端开发 Java Serverless
阿里云云效产品使用问题之前端流水线部署时,在构建环节,编译和打包要分开还是放在一起
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6天前
|
前端开发 Devops 测试技术
阿里云云效产品使用问题之更换所部署的环境关联的ACK集群该如何实现
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7天前
|
缓存 运维 Kubernetes
阿里云云效操作报错合集之有几个老项目流水线,部署过程一直是部署中不结束,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。