在Linux系统上部署Web应用程序是后端开发和服务上线的核心环节,整个过程需要完成环境搭建、应用配置、服务代理和进程管理等多个步骤,下面以Python Flask应用为例,详细讲解完整的部署流程。

部署前准备
首先确保你有一台可用的Linux服务器,本文以Ubuntu 22.04为例,其他发行版操作逻辑类似,仅包管理命令有差异。部署前需要完成以下基础操作:
- 更新系统软件包索引,执行
sudo apt update && sudo apt upgrade -y - 创建专用的部署用户,避免使用root用户直接运行应用,提升安全性
- 确认服务器开放了对应端口的防火墙权限,比如常用的80、443端口
安装运行环境
根据Web应用的技术栈安装对应的运行环境,这里以Python Flask应用为例,需要安装Python环境和虚拟环境工具:
# 安装Python3和pip sudo apt install python3 python3-pip -y # 安装虚拟环境工具 sudo pip3 install virtualenv
如果是其他技术栈,比如Node.js应用需要安装Node.js环境,Java应用需要安装JDK,操作逻辑一致,根据官方文档安装对应版本即可。
上传并配置应用
将本地开发好的Web应用代码上传到服务器,推荐使用git拉取或者scp命令传输,这里以git拉取为例:
# 切换到部署用户目录 cd /home/deploy # 拉取应用代码 git clone https://ipipp.com/your_flask_app.git cd your_flask_app # 创建虚拟环境 virtualenv venv # 激活虚拟环境 source venv/bin/activate # 安装应用依赖 pip install -r requirements.txt
应用配置需要根据服务器环境调整,比如数据库连接地址、端口号等配置,不要将开发环境的配置直接用于生产环境。
配置WSGI服务
Flask自带的服务仅适合开发环境,生产环境需要使用WSGI服务器来运行应用,这里使用Gunicorn作为WSGI服务器:
# 安装Gunicorn pip install gunicorn # 测试启动应用,假设应用入口文件是app.py,应用实例名是app gunicorn -w 4 -b 127.0.0.1:5000 app:app
参数说明:-w指定工作进程数,一般设置为CPU核心数的2-4倍;-b指定绑定的地址和端口,这里先绑定本地回环地址,后续由Nginx反向代理。
安装配置Nginx反向代理
Nginx作为反向代理服务器,负责接收外部请求并转发给后端的Gunicorn服务,同时可以处理静态资源、SSL证书等:
# 安装Nginx sudo apt install nginx -y
创建Nginx配置文件:
sudo vim /etc/nginx/sites-available/flask_app
配置文件内容如下:
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或者服务器公网IP
location / {
proxy_pass http://127.0.0.1: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;
}
location /static {
alias /home/deploy/your_flask_app/static; # 静态资源路径
}
}
启用配置文件并重启Nginx:
# 创建软链接到启用目录 sudo ln -s /etc/nginx/sites-available/flask_app /etc/nginx/sites-enabled/ # 测试Nginx配置是否有误 sudo nginx -t # 重启Nginx sudo systemctl restart nginx
配置进程守护
为了避免应用进程意外退出,需要使用进程守护工具管理Gunicorn进程,这里使用Systemd:
sudo vim /etc/systemd/system/flask_app.service
服务文件内容如下:
[Unit] Description=Flask App Gunicorn Service After=network.target [Service] User=deploy Group=www-data WorkingDirectory=/home/deploy/your_flask_app Environment="PATH=/home/deploy/your_flask_app/venv/bin" ExecStart=/home/deploy/your_flask_app/venv/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app [Install] WantedBy=multi-user.target
启动并设置开机自启:
# 重新加载Systemd配置 sudo systemctl daemon-reload # 启动服务 sudo systemctl start flask_app # 设置开机自启 sudo systemctl enable flask_app # 查看服务状态 sudo systemctl status flask_app
部署验证
完成以上所有步骤后,在浏览器中输入你的服务器公网IP或者绑定的域名,就可以访问部署好的Web应用了。如果无法访问,可以按照以下顺序排查问题:
- 检查Gunicorn服务是否正常运行,查看服务日志
sudo journalctl -u flask_app -f - 检查Nginx是否正常运行,查看Nginx错误日志
sudo tail -f /var/log/nginx/error.log - 检查服务器防火墙是否开放了80端口,执行
sudo ufw status查看防火墙规则 - 检查应用代码是否有语法错误或者配置错误
注意:生产环境部署建议配置SSL证书,使用HTTPS协议访问,提升应用安全性,可以通过Let's Encrypt免费申请SSL证书,配置到Nginx中即可。
LinuxWeb部署NginxPython_Flask修改时间:2026-07-06 07:27:30