首页主机资讯CentOS Python项目怎么部署

CentOS Python项目怎么部署

时间2025-10-20 13:48:03发布访客分类主机资讯浏览1243
导读:CentOS Python项目部署完整流程 1. 准备基础环境 首先确保系统已安装Python 3和pip(Python包管理工具),这是部署的基础: sudo yum install -y python3 python3-pip 验证安...

CentOS Python项目部署完整流程

1. 准备基础环境

首先确保系统已安装Python 3和pip(Python包管理工具),这是部署的基础:

sudo yum install -y python3 python3-pip

验证安装结果:

python3 --version  # 查看Python版本(建议3.6+)
pip3 --version     # 查看pip版本

若未安装python3-venv(Python 3虚拟环境工具),需额外安装:

sudo yum install -y python3-venv

2. 创建并激活虚拟环境

虚拟环境可隔离项目依赖,避免全局环境污染:

# 进入项目目录
mkdir my_python_project &
    &
     cd my_python_project

# 创建虚拟环境(Python 3自带venv模块)
python3 -m venv venv

# 激活虚拟环境(激活后命令行前会显示(venv))
source venv/bin/activate

激活后,后续所有pip安装的包都会存放在venv目录中。

3. 安装项目依赖

将项目依赖列表(requirements.txt)复制到项目目录,通过pip安装所有依赖:

# 生成requirements.txt(若已有则跳过)
pip freeze >
 requirements.txt

# 安装依赖(从requirements.txt读取)
pip install -r requirements.txt

requirements.txt示例(包含常见Python包及版本):

Flask==2.3.3
gunicorn==21.2.0
requests==2.31.0

4. 配置应用启动方式

根据项目类型选择合适的启动工具(以Flask为例):

  • 直接运行(仅测试用)

    python app.py  # 替换为你的主程序文件(如main.py、app.py)
    

    默认监听127.0.0.1:5000,仅本地可访问。

  • 使用Gunicorn(生产推荐)
    Gunicorn是Python WSGI HTTP服务器,性能优于直接运行:

    pip install gunicorn  # 若未在requirements.txt中
    gunicorn -w 4 -b 127.0.0.1:8000 app:app  # -w指定工作进程数,-b指定绑定地址
    

    其中app:app表示app.py文件中的app对象(Flask应用实例)。

5. 配置Systemd服务(可选但推荐)

让应用随系统启动,并在崩溃后自动重启:

# 创建服务文件
sudo vim /etc/systemd/system/my_python_app.service

写入以下内容(根据实际情况修改路径和用户):

[Unit]
Description=My Python Application
After=network.target

[Service]
User=your_username  # 替换为你的系统用户名(如centos)
Group=your_group    # 替换为用户组(如centos)
WorkingDirectory=/path/to/my_python_project  # 项目绝对路径
ExecStart=/path/to/my_python_project/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
Restart=always      # 崩溃后自动重启

[Install]
WantedBy=multi-user.target

保存后执行以下命令启用并启动服务:

sudo systemctl daemon-reload  # 重新加载systemd配置
sudo systemctl start my_python_app  # 启动服务
sudo systemctl enable my_python_app  # 设置开机自启

查看服务状态:

sudo systemctl status my_python_app

6. 配置防火墙

允许外部访问应用端口(如8000),若使用Nginx反向代理则只需放行80/443端口:

# 开放8000端口(TCP)
sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --reload  # 重新加载防火墙规则

验证端口是否开放:

sudo firewall-cmd --list-ports

7. 配置反向代理(可选但推荐)

使用Nginx作为反向代理,提升安全性(隐藏应用端口)、支持HTTPS和负载均衡:

# 安装Nginx
sudo yum install -y nginx

# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

编辑Nginx配置文件(如/etc/nginx/conf.d/my_python_app.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;
    
        proxy_set_header X-Forwarded-Proto $scheme;

    }

}
    

测试Nginx配置语法并重载:

sudo nginx -t  # 测试配置是否正确
sudo systemctl reload nginx  # 重载Nginx

此时可通过http://your_domain.com访问应用。

8. 验证部署

  • 通过浏览器访问http://your_domain.com(或服务器IP),查看应用是否正常响应。
  • 查看应用日志(排查问题):
    sudo journalctl -u my_python_app -f  # 查看Systemd服务日志
    tail -f /path/to/my_python_project/logs/app.log  # 若应用有自己的日志文件
    

可选优化:使用Docker部署

若需要更便捷的环境隔离和扩展性,可使用Docker:

  1. 在项目根目录创建Dockerfile
    FROM python:3.9-slim
    WORKDIR /app
    COPY . .
    RUN pip install --no-cache-dir -r requirements.txt
    EXPOSE 8000
    CMD ["gunicorn", "-w 4", "-b 0.0.0.0:8000", "app:app"]
    
  2. 构建镜像:
    docker build -t my_python_app .
    
  3. 运行容器:
    docker run -d -p 8000:8000 --name my_app_container my_python_app
    
  4. 配置Nginx反向代理指向127.0.0.1:8000(同上)。

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


若转载请注明出处: CentOS Python项目怎么部署
本文地址: https://pptw.com/jishu/730033.html
CentOS上Python怎么配置 CentOS Python脚本怎么执行

游客 回复需填写必要信息