当前位置: 首页 > news >正文

python web 项目 部署成 Linux 服务

python web 项目 部署成 Linux 服务

生产级推荐配置,包含:

  • 使用普通用户(非 root)
  • 项目放在 /opt/mock_server
  • 使用 Gunicorn 作为 WSGI 服务器(比 Flask 内置服务器更稳定、支持并发)
  • systemd 服务文件完整配置

✅ 第一步:创建专用用户和目录

# 创建系统用户(无登录 shell,仅用于运行服务)
sudo useradd -r -s /bin/false mockuser# 创建项目目录
sudo mkdir -p /opt/mock_server# 设置所有权
sudo chown mockuser:mockuser /opt/mock_server

✅ 第二步:部署 Flask 应用

切换到项目目录(以 mockuser 身份操作):

sudo -u mockuser bash
cd /opt/mock_server

1. 创建虚拟环境并安装依赖

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple
pip install flask gunicorn -i https://mirrors.aliyun.com/pypi/simple

2. 创建 Flask 应用:app.py

# /opt/mock_server/app.py
from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello():return "✅ Hello from Production Mock Server!\n"if __name__ == "__main__":app.run()

注意:这里不需要 app.run(host=...),因为 Gunicorn 会接管。


✅ 第三步:测试 Gunicorn 手动启动(可选)

# 激活环境后
gunicorn --bind 0.0.0.0:5000 --workers 2 app:app

访问 http://<your-ip>:5000 看是否返回内容。
成功后按 Ctrl+C 停止。


✅ 第四步:创建 systemd 服务文件(生产级)

退出 mockuser shell:

exit

创建服务文件:

sudo vim /etc/systemd/system/mock_server.service

写入以下内容:

[Unit]
Description=Mock Server (Flask + Gunicorn)
After=network.target[Service]
User=mockuser
Group=mockuser
WorkingDirectory=/opt/mock_server
Environment="PATH=/opt/mock_server/.venv/bin"
ExecStart=/opt/mock_server/.venv/bin/gunicorn --bind 0.0.0.0:5000 --workers 3 --timeout 60 app:app
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=mock_server[Install]
WantedBy=multi-user.target

🔹 参数说明:

  • --workers 3:根据 CPU 核心数设置(通常 2 * cores + 1
  • --timeout 60:防止请求卡死
  • app:app:从 app.py 中加载名为 app 的 Flask 实例

✅ 第五步:启用并启动服务

# 重载 systemd
sudo systemctl daemon-reload# 启动服务
sudo systemctl start mock_server# 开机自启
sudo systemctl enable mock_server# 查看状态
sudo systemctl status mock_server

✅ 第六步:查看日志 & 验证

# 实时日志
sudo journalctl -u mock_server -f# 测试访问
curl http://127.0.0.1:5000

你应该看到:

✅ Hello from Production Mock Server!

🛡️ 安全与扩展建议(生产环境)

项目建议
反向代理用 Nginx 或 Apache 做前端代理,处理静态文件、SSL、限流等
HTTPS通过 Nginx + Let’s Encrypt 配置 HTTPS
日志轮转配置 journald 或将 Gunicorn 日志输出到文件并用 logrotate 管理
监控加入 Prometheus + Grafana 或 systemd notify

📁 最终目录结构

/opt/mock_server/
├── app.py
├── .venv/
│   └── bin/
│       ├── python3
│       └── gunicorn
└── ...

所有者:mockuser:mockuser
权限:安全隔离,无 root 权限


http://www.dtcms.com/a/599182.html

相关文章:

  • 门业网站模板下载清远东莞网站建设
  • 湖北 网站建设网站建设 人和商圈
  • 萧县城乡建设局网站小程序制作卡片列表
  • 怎么建设游网站主页网站建设 推广薪资
  • 【linux】解决NAT模型下使用Xshell连接虚拟机显示22端口connection failed问题
  • 免费行情网站app大全下载百度云搜索引擎
  • 专做婚礼logo的网站深圳住房和建设局网站登录界面
  • c 开发网站开发自己做都网站怎么发朋友圈
  • 电子商务网站的建设开发工具内蒙古建设厅网站首页
  • 网站建设 需要ae吗汽车o2o网站建设
  • 电子商务网站软件建设的可以做公众号封面图的网站
  • 网站开发常问的技术性问题asp网站发邮件
  • JavaScript 中Array 整理
  • 有多少网站建设外包深圳好的网站制作哪家快
  • 设计一个小程序多少钱seo服务公司怎么收费
  • 哪家公司做直播间网站wordpress数据统计插件
  • 哪个地方网站建设的公司多秦皇岛建设工程信息网站
  • VSCode插件精选:4款高效UML绘图工具
  • 石家庄网站建设公司哪个好国内搜索引擎优化的公司
  • HarmonyOS内存优化与泄漏排查:常见场景与工具定位
  • 苏州外贸网站建设公司docker 搭建wordpress
  • 手机微网站平台登录入口贷款网站平台有哪些
  • 凡科手机网站建设免费风景视频素材下载
  • 数据结构顺序表
  • jsp 企业建站设计方案ppt模板
  • OpenCV通道数“诡异”变化?
  • 做博客网站赚钱吗企业网站建设的费用
  • 网站域名怎么修改电子商务网站开发案例
  • 凉州区新农村建设网站dedecms建手机网站流程
  • 最好建设网站wordpress 开放插件