首页主机资讯CentOS Python项目部署流程是怎样的

CentOS Python项目部署流程是怎样的

时间2025-10-09 08:27:03发布访客分类主机资讯浏览728
导读:CentOS Python项目部署流程 1. 准备基础环境 安装Python与pip:CentOS 7及以上默认安装Python 2.7,需安装Python 3及pip工具。sudo yum install -y python3 pyth...

CentOS Python项目部署流程

1. 准备基础环境

  • 安装Python与pip:CentOS 7及以上默认安装Python 2.7,需安装Python 3及pip工具。
    sudo yum install -y python3 python3-pip
    
  • 验证安装
    python3 --version  # 确认Python版本(建议3.6+)
    pip3 --version     # 确认pip版本
    

2. 配置项目目录与虚拟环境

  • 创建项目目录
    mkdir -p /opt/python_project &
        &
     cd /opt/python_project
    
  • 创建并激活虚拟环境(隔离项目依赖,避免冲突):
    python3 -m venv venv       # 创建虚拟环境
    source venv/bin/activate   # 激活虚拟环境(激活后命令行前缀为“(venv)”)
    

3. 部署项目代码

  • 上传代码:通过scprsync或Git将本地项目代码上传至服务器项目目录(如/opt/python_project)。
    scp -r local_project/* user@server_ip:/opt/python_project/
    
  • 安装项目依赖:项目根目录需包含requirements.txt(依赖清单),通过pip安装所有依赖。
    pip install -r requirements.txt
    

4. 配置WSGI服务器(连接应用与Web服务器)

  • 安装Gunicorn/uWSGI(以Gunicorn为例,轻量易用):
    pip install gunicorn
    
  • 启动WSGI服务
    • 若项目为Flask,需指定应用入口(如app.py中的app对象):
      gunicorn -w 4 -b 127.0.0.1:8000 app:app
      
    • 若项目为Django,需指定wsgi.py文件路径:
      gunicorn -w 4 -b 127.0.0.1:8000 myproject.wsgi:application
      
    • 参数说明:-w 4(4个工作进程)、-b 127.0.0.1:8000(绑定本地8000端口,仅内部访问)。

5. 配置反向代理(Nginx,提升性能与安全性)

  • 安装Nginx
    sudo yum install -y nginx
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  • 配置Nginx:编辑/etc/nginx/conf.d/python_project.conf,添加以下内容:
    server {
        
        listen 80;
        
        server_name your_domain.com;
      # 替换为域名或IP
    
        location / {
        
            proxy_pass http://127.0.0.1:8000;
          # 转发至Gunicorn
            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/ {
          # 静态文件由Nginx直接处理
            alias /opt/python_project/static/;
        
            expires 30d;
    
        }
    
    }
        
    
  • 验证配置并重启Nginx
    sudo nginx -t    # 测试配置语法
    sudo systemctl restart nginx
    

6. 配置Systemd服务(实现开机自启)

  • 创建Systemd服务文件:编辑/etc/systemd/system/python_project.service,内容如下:
    [Unit]
    Description=Python Project Service
    After=network.target
    
    [Service]
    User=your_user    # 替换为运行项目的用户(如ubuntu、centos)
    Group=your_group  # 替换为用户组
    WorkingDirectory=/opt/python_project
    ExecStart=/opt/python_project/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
    Restart=always    # 崩溃后自动重启
    Environment="PYTHONUNBUFFERED=1"  # 避免Python输出缓冲
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动并启用服务
    sudo systemctl daemon-reload
    sudo systemctl start python_project
    sudo systemctl enable python_project  # 开机自启
    
  • 查看服务状态
    sudo systemctl status python_project
    

7. 配置防火墙(允许外部访问)

  • 开放HTTP端口(80)
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload
    
  • 若使用HTTPS(推荐):需申请SSL证书(如Let’s Encrypt),并通过Nginx配置HTTPS监听443端口。

8. 验证部署

  • 访问项目:在浏览器输入服务器IP或域名,确认项目页面正常显示。
  • 查看日志:若出现问题,通过以下命令查看日志定位原因:
    sudo journalctl -u python_project -f  # 查看Systemd服务日志
    tail -f /opt/python_project/venv/log/gunicorn.log  # 查看Gunicorn日志(若有)
    

可选优化步骤

  • 静态文件收集:若使用Django,运行python manage.py collectstatic将静态文件收集至STATIC_ROOT目录。
  • HTTPS配置:使用Certbot为Nginx配置免费SSL证书,提升安全性。
  • 性能优化:调整Gunicorn的workers(工作进程数,通常为CPU核心数×2+1)和threads(线程数)参数。
  • 容器化部署:使用Docker将项目打包为镜像,通过Docker Compose管理多容器(如Nginx+Python),提升部署一致性。

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


若转载请注明出处: CentOS Python项目部署流程是怎样的
本文地址: https://pptw.com/jishu/721012.html
CentOS从零开始如何创建用户账户 CentOS Python数据库连接怎样优化

游客 回复需填写必要信息