您的 Python 服务器上安装什么?
- 来自 Ubuntu 24.04 软件源的 Python 3.12
- 位于 /home/app/uygulama/venv 的虚拟环境
- Gunicorn 26,2 个 worker,监听 127.0.0.1:8000
- 名为 uygulama 的 systemd 服务,开机自启,崩溃后自动重启
- 通过 Caddy 提供 HTTPS,使用基于您 IP 的 sslip.io 地址,所以域名是可选的
- 无特权的 app 用户,您的代码不会以 root 身份运行
- 防火墙只开放 22、80 和 443 端口
Python 需要多大的配置?
Python 的文档没有给出 RAM 数值,因为需要多少取决于您的应用。Gunicorn 为每个 worker 单独启动一个进程来加载您的应用,所以内存会随 worker 数量增长。Gunicorn 建议从 (2 x 核心数) + 1 个 worker 开始,本次安装运行 2 个。经验上,小型 API 从 1 GB 起步比较合适,多个 worker 或较重的软件包可以考虑 2 到 4 GB。如果不够,可以在面板中分别扩大 RAM、CPU 和磁盘,您的数据和 IP 地址保持不变。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 入门 | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/月 | |
| 中等 | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/月 | |
| 强劲 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 用 Flask 或 FastAPI 发布 API 或网页应用的开发者
- 在共享主机上遇到 Python 版本或软件包限制的项目
- 想把用 AI 工具做出的 Python 应用跑在自己服务器上的人
- 运行数据处理、自动化或定时脚本的人
下单之后会发生什么?
- 设定配置并完成付款。
- 服务器启动后,Python 和 Gunicorn 会自行安装。在我们的真实服务器测试中大约需要 3 分钟。
- 在“概览”标签页打开“网站地址”。示例页面会显示 Python 版本。
- 通过 SSH 连接,输入 su - app,用 cd ~/uygulama 进入该文件夹,再把您的代码放进来,例如用 git clone。
- 安装您的依赖包,命令如下:venv/bin/pip install -r requirements.txt
- 让 wsgi.py 提供名为 app 的应用对象,用 exit 回到 root,然后运行 systemctl restart uygulama。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- Gunicorn 运行的是 wsgi:app。如果要用别的模块,请修改 /etc/systemd/system/uygulama.service 中的 ExecStart 行,并运行 systemctl daemon-reload。
- 升级配置不会自动增加 worker。您需要在同一个服务文件中修改 --workers 的值。
- 要编译 C 扩展,请以 root 身份运行 apt install build-essential python3-dev。
- Ubuntu 和 Python 的安全更新会自动安装。虚拟环境中的 pip 软件包需要您自己更新。
- 您的应用应监听 127.0.0.1:8000,对外地址由 Caddy 处理。直接把 Gunicorn 开放到外部会绕过 HTTPS。
- 如果证书无法签发,网站会通过 http 在您的 IP 地址上打开。
Python 常见问题
如何部署我的 Flask 应用?
把代码放到 ~/uygulama,用 venv/bin/pip 安装依赖。让 wsgi.py 提供名为 app 的应用,然后以 root 身份运行 systemctl restart uygulama。也可以把 ExecStart 行中的 wsgi:app 换成 project:app;如果是应用工厂,则换成 project:create_app(),再运行 systemctl daemon-reload。
这台服务器能运行 FastAPI 吗?
可以。FastAPI 使用 ASGI,由 Gunicorn 内置的 ASGI worker 处理。在 ExecStart 行中,把 wsgi:app 换成 --worker-class asgi main:app,然后运行 systemctl daemon-reload 和 systemctl restart uygulama。绑定地址请保持 127.0.0.1:8000。
Python 托管需要多少 RAM?
Python 没有官方的 RAM 数值,因为取决于您的应用和 worker 数量。经验上,小型 API 从 1 GB 起步比较合适,多个 worker 或数据科学类软件包可以考虑 2 到 4 GB。
可以更换 Python 版本吗?
服务器自带来自 Ubuntu 24.04 的 Python 3.12。您有 root 权限,所以也可以安装其他版本。请用该版本重新创建虚拟环境,再重新安装您的软件包和 Gunicorn。
退出 SSH 后,我的应用会停止吗?
不会。您的 Python 代码以名为 uygulama 的 systemd 服务运行。退出登录后它仍在运行,崩溃或服务器重启后也会自动恢复。您可以用 journalctl -u uygulama 查看它的输出。
这台服务器适合 Django 吗?
适合。Gunicorn 也能运行 Django,只需在 ExecStart 行中写 project.wsgi:application。如果您希望预装好 Django 及其设置,请看 Django 服务器选项。