在阿里云 ECS 上搭建一个基于 Python 的静态网站,虽然听起来有些矛盾(因为“静态网站”通常指 HTML/CSS/JS 文件,不需要后端语言),但我们可以理解为你想用 Python 来托管静态文件(比如使用 Flask 或 Python 内置服务器),或者你可能是想部署一个简单的 Web 服务来展示静态内容。
下面我将分步骤介绍如何在阿里云 ECS 实例上:
- 购买并配置 ECS 实例
- 安装 Python 环境
- 使用 Python 快速搭建一个静态网站(通过 Flask 或
http.server) - 设置域名和公网访问(可选)
- 推荐使用 Nginx 托管静态文件(更高效)
✅ 第一步:购买并配置阿里云 ECS
- 登录 阿里云控制台
- 进入 ECS 控制台
- 创建实例:
- 地域:选择离你用户近的(如华北 1)
- 镜像:选择 Ubuntu 20.04 64位(推荐)
- 实例规格:
ecs.t5-lc1m2.small(够用,便宜) - 安全组:确保开放 80(HTTP)和 22(SSH)端口
- 设置登录密码或密钥对
创建完成后,获取 公网 IP 地址
✅ 第二步:连接 ECS 并安装 Python
使用 SSH 连接到你的 ECS 实例:
ssh root@你的公网IP
更新系统并安装 Python3 和 pip:
sudo apt update
sudo apt install python3 python3-pip -y
验证安装:
python3 --version
pip3 --version
✅ 第三步:创建静态网站目录和内容
方法一:使用 Python 内置 HTTP 服务器(快速测试)
# 创建网站目录
mkdir -p ~/my_static_site
cd ~/my_static_site
# 创建一个简单的 index.html
cat > index.html <<EOF
<!DOCTYPE html>
<html>
<head>
<title>我的静态网站</title>
</head>
<body>
<h1>Hello from Python HTTP Server!</h1>
<p>这是用 Python 在阿里云 ECS 上搭建的静态网站。</p>
</body>
</html>
EOF
# 启动 Python 内置服务器(监听 0.0.0.0 允许X_X访问)
python3 -m http.server 80
注意:
80端口需要 root 权限,或使用sudo。
此时访问 http://你的公网IP 即可看到页面。
⚠️ 缺点:http.server 是测试用的,不推荐生产环境。
方法二:使用 Flask 搭建(更灵活,适合扩展)
- 安装 Flask:
pip3 install flask
- 创建 Flask 应用:
mkdir -p ~/flask_static_app
cd ~/flask_static_app
创建 app.py:
from flask import Flask, send_from_directory
import os
app = Flask(__name__)
# 静态文件目录
STATIC_FOLDER = 'static'
@app.route('/')
def index():
return send_from_directory(STATIC_FOLDER, 'index.html')
# 提供静态资源
@app.route('/<path:filename>')
def static_files(filename):
return send_from_directory(STATIC_FOLDER, filename)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
- 创建静态文件目录:
mkdir static
cat > static/index.html <<EOF
<!DOCTYPE html>
<html>
<head>
<title>Flask 静态网站</title>
</head>
<body>
<h1>欢迎来到我的 Flask 静态网站</h1>
<p>托管在阿里云 ECS 上!</p>
</body>
</html>
EOF
- 运行 Flask 应用:
sudo python3 app.py
访问 http://你的公网IP 查看效果。
✅ 第四步:设置开机自启 & 后台运行(可选)
使用 nohup 或 systemd 让服务后台运行。
使用 nohup(简单):
nohup python3 app.py > server.log 2>&1 &
查看日志:
tail -f server.log
✅ 第五步:使用 Nginx 托管静态文件(推荐生产环境)
Python 不是托管静态文件的最佳选择。推荐使用 Nginx。
- 安装 Nginx:
sudo apt install nginx -y
- 将静态文件放到 Nginx 目录:
sudo mkdir -p /var/www/html/mywebsite
sudo cp ~/my_static_site/index.html /var/www/html/mywebsite/
- 配置 Nginx(可选):
编辑 /etc/nginx/sites-available/default,确保 root 指向你的目录。
server {
listen 80;
root /var/www/html/mywebsite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- 重启 Nginx:
sudo systemctl restart nginx
现在访问 http://你的公网IP,由 Nginx 托管,性能更好。
✅ 第六步:绑定域名(可选)
- 在阿里云购买域名
- 进入「云解析 DNS」,添加 A 记录,指向你的 ECS 公网 IP
- 等待 DNS 生效
- 访问
http://yourdomain.com即可
总结
| 方式 | 适用场景 | 推荐度 |
|---|---|---|
python3 -m http.server |
快速测试 | ⭐⭐ |
| Flask 托管静态文件 | 学习/小项目 | ⭐⭐⭐ |
| Nginx 托管 | 生产环境 | ⭐⭐⭐⭐⭐ |
💡 建议:静态网站优先使用 Nginx + HTML 文件,Python 更适合动态内容。
如需我帮你写一个完整的部署脚本或 systemd 服务文件,请告诉我!
云计算导航