如何在Hostinger VPS上部署Flask API?访问127.0.0.1:5000失败
Hostinger VPS上Flask API部署访问问题解决
问题根源
你当前启动的Flask开发服务器仅绑定了127.0.0.1,这个地址是VPS本地回环地址,外部浏览器无法直接访问;同时开发服务器性能弱、安全性不足,不适合生产环境使用。
临时测试方案(快速验证访问)
- 修改启动命令,让服务监听所有网卡:
- 方式一:通过启动参数指定
export FLASK_APP=app.py flask run --host=0.0.0.0 --port=5000 - 方式二:修改
app.py代码if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
- 方式一:通过启动参数指定
- 开放端口:
- 在VPS终端执行
ufw allow 5000/tcp(使用ufw防火墙的情况) - 登录Hostinger VPS控制面板,在防火墙规则中添加入站5000端口的允许规则
- 在VPS终端执行
- 此时用浏览器访问
http://你的VPS公网IP:5000即可测试
生产环境部署方案(推荐)
采用Gunicorn(WSGI服务器)+ Nginx(反向代理)的标准生产部署方案,步骤如下:
1. 安装依赖
# 更新系统包 apt update && apt upgrade -y # 安装Gunicorn pip install gunicorn # 安装Nginx apt install nginx -y
2. 配置Gunicorn服务(实现开机自启)
创建systemd服务配置文件:
nano /etc/systemd/system/flask_api.service
写入以下内容(注意替换WorkingDirectory为你的项目实际路径,ExecStart中的gunicorn路径可通过which gunicorn查询):
[Unit] Description=Flask API Service After=network.target [Service] User=root WorkingDirectory=/root/barish ExecStart=/usr/local/bin/gunicorn --workers=3 --bind=127.0.0.1:8000 app:app [Install] WantedBy=multi-user.target
--workers=3:建议设置为CPU核心数×2+1,可根据VPS配置调整app:app:第一个app是你的Flask文件名(不含.py),第二个app是文件中创建的Flask实例名
然后启动服务并设置开机自启:
systemctl daemon-reload systemctl start flask_api systemctl enable flask_api
3. 配置Nginx反向代理
创建Nginx站点配置文件:
nano /etc/nginx/sites-available/flask_api
写入以下内容(替换server_name为你的VPS公网IP或已绑定的域名):
server { listen 80; server_name 你的VPS公网IP; location / { proxy_pass http://127.0.0.1:8000; 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; } }
启用配置并重启Nginx:
# 启用站点配置 ln -s /etc/nginx/sites-available/flask_api /etc/nginx/sites-enabled/ # 验证配置正确性 nginx -t # 重启Nginx systemctl restart nginx
4. 开放端口
# 开放80端口(HTTP) ufw allow 80/tcp # 重启防火墙生效 ufw reload
同时在Hostinger VPS控制面板的防火墙规则中添加入站80端口的允许规则。
5. 验证访问
直接用浏览器访问http://你的VPS公网IP即可正常访问Flask API。
内容的提问来源于stack exchange,提问作者Mohamed Azim
相关产品推荐
相关产品推荐

