服务器启动flask项目流程
进入toolBackend文件夹
source venv/bin/activate
pm2 start "venv/bin/gunicorn -w 4 app:app -b 0.0.0.0:5000" --name backend
pm2 logs backend
安装所需依赖(pip install -r requirements.txt )
服务器配置:
sudo apt update
sudo apt install nginx
创建配置文件:
sudo nano /etc/nginx/sites-available/48api.tool4me.cn
写入以下内容:
server {
listen 80;
server_name 48api.tool4me.cn;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
保存并创建链接启用配置:
sudo ln -s /etc/nginx/sites-available/48api.tool4me.cn /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
✅ 解决方案:启动 Nginx 服务
请执行以下命令:
sudo systemctl start nginx
然后查看是否启动成功:
sudo systemctl status nginx
🧩 第三步:配置 HTTPS(强烈推荐)
安装 certbot:
sudo apt install certbot python3-certbot-nginx
申请 HTTPS 证书:
sudo certbot --nginx -d 48api.tool4me.cn
nginx
location / {
# 处理 CORS 预检请求
if ($request_method = OPTIONS) {
add_header 'Access-Control-Allow-Origin' 'https://tool4me.vercel.app' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Max-Age' 3600 always;
add_header 'Content-Length' 0;
add_header 'Content-Type' 'text/plain; charset=UTF-8';
return 204;
}
# 正常代理 Flask
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# CORS 响应头
add_header 'Access-Control-Allow-Origin' 'https://tool4me.vercel.app' always;
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
}