安装 Nginx
sudo apt install nginx -y
安装完成后,Nginx 默认会监听 80 端口,你可以测试:
curl http://localhost
如果能返回一个默认页面,说明安装成功。
申请/准备证书
你已经用 acme.sh 申请过证书,路径是:
公钥:/root/.acme.sh/2025xxx.help_ecc/fullchain.cer
私钥:/root/.acme.sh/2025xxx.help_ecc/2025xxx.help.key
这就是我们要在 Nginx 配置里用的证书。
配置 Nginx
编辑配置文件:
sudo nano /etc/nginx/sites-available/2025xxx.help
写入以下内容:
server {
listen 80;
server_name 2025xxx.help;
# 所有 http 请求跳转到 https
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name 2025xxx.help;
ssl_certificate /root/.acme.sh/2025xxx.help_ecc/fullchain.cer;
ssl_certificate_key /root/.acme.sh/2025xxx.help_ecc/2025xxx.help.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://127.0.0.1:5000; # Flask 跑在 5000 端口
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/2025xxx.help /etc/nginx/sites-enabled/
sudo nginx -t # 检查配置是否正确
sudo systemctl reload nginx
运行 Flask
修改你的 Flask 代码,让它监听 5000 端口:
app.run(host="0.0.0.0", port=5000)
用户访问 https://2025cc2026.help/ → Nginx 处理 TLS → 转发到 Flask (5000)。
用户访问 http://2025cc2026.help/ → 自动跳转到 HTTPS。