首页主机资讯Python Web框架在CentOS如何部署

Python Web框架在CentOS如何部署

时间2025-11-18 11:16:03发布访客分类主机资讯浏览1154
导读:在 CentOS 部署 Python Web 框架的标准流程 一 环境准备与基础安装 更新系统并安装基础软件包:sudo yum update -y && sudo yum install -y python3 pytho...

在 CentOS 部署 Python Web 框架的标准流程

一 环境准备与基础安装

  • 更新系统并安装基础软件包:sudo yum update -y & & sudo yum install -y python3 python3-pip python3-venv git nginx
  • 若使用 CentOS 7,默认仅有 Python 2.7,需显式安装 Python 3.xpip,后续操作均基于 Python 3

二 创建项目与虚拟环境

  • 创建项目目录并进入:mkdir -p /opt/myapp & & cd /opt/myapp
  • 建立并激活虚拟环境:python3 -m venv venv & & source venv/bin/activate
  • 安装依赖(示例为 Flask):pip install -U pip & & pip install Flask
  • 简单应用示例 app.py(Flask):
    • from flask import Flask app = Flask(name) @app.route(‘/’) def hello(): return ‘Hello, World!’ if name == ‘main’: app.run(host=‘0.0.0.0’, port=5000)
  • 开发时可临时运行:python app.py(仅用于调试,生产不建议使用内置服务器)。

三 生产级部署方案 Nginx + Gunicorn(以 Flask 为例)

  • 安装并启动 Gunicorn:pip install gunicorn;示例启动命令:gunicorn -w 4 -b 127.0.0.1:8000 app:app(4 个工作进程,绑定本地 8000 端口)
  • 配置 Nginx 反向代理(/etc/nginx/conf.d/myapp.conf):
    • server { listen 80; server_name your_domain_or_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:sudo nginx -t & & sudo systemctl reload nginx
  • 开放防火墙端口:sudo firewall-cmd --permanent --zone=public --add-service=http --add-service=https & & sudo firewall-cmd --reload
  • 可选启用 HTTPS:使用 Let’s Encrypt/Certbot 为域名申请免费证书并自动配置 Nginx。

四 以 systemd 托管 Gunicorn 进程

  • 创建服务文件:sudo vi /etc/systemd/system/myapp.service
    • [Unit] Description=gunicorn daemon for myapp After=network.target
    • [Service] User=your_username Group=nginx WorkingDirectory=/opt/myapp Environment=“PATH=/opt/myapp/venv/bin” ExecStart=/opt/myapp/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
    • [Install] WantedBy=multi-user.target
  • 启动与开机自启:sudo systemctl daemon-reload & & sudo systemctl start myapp & & sudo systemctl enable myapp
  • 常用运维:查看状态 sudo systemctl status myapp;查看日志 sudo journalctl -u myapp -f。

五 Django 与 uWSGI 方案简要指引

  • 安装与初始化:pip install Django;django-admin startproject myproject;cd myproject
  • 生产服务器建议用 uWSGI(配合 Nginx):pip install uwsgi
  • uWSGI 配置示例 myapp.ini(与 Nginx 通过 Unix Socket 通信):
    • [uwsgi] module = myproject.wsgi:application master = true processes = 4 socket = /tmp/myapp.sock chmod-socket = 660 vacuum = true
  • Nginx 配置片段(/etc/nginx/conf.d/myapp.conf):
    • server { listen 80; server_name your_domain_or_ip; location / { include uwsgi_params; uwsgi_pass unix:/tmp/myapp.sock; } }
  • 启动与重载:uwsgi --ini myapp.ini;sudo nginx -t & & sudo systemctl reload nginx。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Python Web框架在CentOS如何部署
本文地址: https://pptw.com/jishu/749933.html
CentOS Python安装后如何配置虚拟环境 CentOS中Python自动化运维如何实现

游客 回复需填写必要信息