Python Web框架在CentOS如何部署
导读:在 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.x 与 pip,后续操作均基于 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
