如何在AWS EC2(Ubuntu)实例部署Jupyter Notebook应用并公网访问
有成熟可行的部署方案,以下是适配Ubuntu系统AWS EC2实例的分步操作指南:
前置准备
提前确认以下条件已满足:
- 已创建搭载Ubuntu 20.04/22.04系统的EC2实例,持有SSH连接密钥
- EC2实例安全组初始开放22(SSH连接)端口
- 本地已导出Jupyter开发的计算器应用
.ipynb源文件,梳理清楚应用依赖的第三方Python库
第一步:上传本地应用到EC2实例
本地终端执行SCP命令上传文件,替换命令中的占位符为你自己的实际参数:
scp -i 你的EC2密钥文件路径.pem 本地计算器应用路径/xxx.ipynb ubuntu@你的EC2公网IP:/home/ubuntu/
第二步:配置EC2运行环境
- SSH连接到EC2实例:
ssh -i 你的EC2密钥文件路径.pem ubuntu@你的EC2公网IP
- 更新系统软件包:
sudo apt update && sudo apt upgrade -y
- 安装Python基础环境:
sudo apt install python3-pip python3-venv -y
- 创建独立虚拟环境并激活:
python3 -m venv calculator-env source calculator-env/bin/activate
- 安装运行依赖:
pip install voilà 你的应用依赖库(比如numpy、pandas等,按实际需求填写)
第三步:测试应用可用性
执行命令启动应用测试:
voilà /home/ubuntu/xxx.ipynb --port 8888 --no-browser
临时在EC2安全组开放8888端口的入站规则,在浏览器访问http://你的EC2公网IP:8888确认计算器功能正常,测试完成后按Ctrl+C关闭进程,删除安全组的8888端口规则。
第四步:配置应用后台持久运行
配置systemd服务实现应用开机自启、后台常驻运行:
- 新建服务配置文件:
sudo nano /etc/systemd/system/calculator.service
- 填入以下配置内容,替换占位符为实际参数:
[Unit] Description=Jupyter Calculator App After=network.target [Service] User=ubuntu WorkingDirectory=/home/ubuntu ExecStart=/home/ubuntu/calculator-env/bin/voilà /home/ubuntu/xxx.ipynb --port 8888 --no-browser --base_url=/ Restart=always [Install] WantedBy=multi-user.target
- 加载配置并启动服务:
sudo systemctl daemon-reload sudo systemctl start calculator sudo systemctl enable calculator
- 验证服务运行状态,显示active (running)即为正常:
sudo systemctl status calculator
第五步:配置Nginx反向代理实现公网80端口访问
- 安装Nginx:
sudo apt install nginx -y
- 新建Nginx站点配置文件:
sudo nano /etc/nginx/sites-available/calculator
- 填入以下配置,替换占位符为实际参数:
server { listen 80; server_name 你的EC2公网IP 如果你有绑定的域名也填在这里; location / { proxy_pass http://127.0.0.1:8888; proxy_set_header Host $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; } }
- 激活配置并验证:
sudo ln -s /etc/nginx/sites-available/calculator /etc/nginx/sites-enabled/ sudo nginx -t
- 重载Nginx配置生效:
sudo systemctl reload nginx
第六步:最终安全组配置
在EC2安全组中开放80端口(HTTP)的入站规则,现在直接在浏览器输入你的EC2公网IP(或者绑定的域名)即可公开访问计算器应用。如果需要HTTPS访问,可以自行配置SSL证书后开放443端口即可。
内容的提问来源于stack exchange,提问作者sai
相关产品推荐
相关产品推荐

