在 CentOS 上配置 Python Web 框架的标准流程
一 环境准备与基础安装
sudo yum update -y && sudo yum install -y python3 python3-pip python3-venv git nginx二 以 Flask 为例的两种运行方式
pip install Flaskapp.py: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.pysudo firewall-cmd --permanent --add-port=5000/tcp && sudo firewall-cmd --reloadpip install gunicorngunicorn -w 4 -b 127.0.0.1:8000 app:app三 生产部署 Nginx 反向代理与 systemd 服务
sudo yum install -y nginx && sudo systemctl start nginx && sudo systemctl enable 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;
}
}
sudo systemctl reload nginxsudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload/etc/systemd/system/myapp.service:[Unit]
Description=gunicorn daemon for myapp
After=network.target
[Service]
User=your_username
Group=nginx
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/your/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reloadsudo systemctl start myapp && sudo systemctl enable myapp四 Django 的快速部署要点
pip install Djangodjango-admin startproject myproject && cd myprojectpython manage.py runserver 0.0.0.0:8000gunicorn -w 4 -b 127.0.0.1:8000 myproject.wsgi:application五 常见问题与优化建议
/static、/media),提升性能;按需开启 Gzip 与合适的 keepalive。journalctl -u myapp -f 实时查看。