centos

CentOS Python Web开发如何搭建

小樊
48
2025-10-30 12:42:25
栏目: 编程语言

CentOS环境下Python Web开发搭建全流程

1. 系统准备与依赖安装

首先更新系统软件包,确保基础环境最新:

sudo yum update -y

安装Python3及pip(CentOS 7及以上默认包含Python 3,若未安装可通过以下命令安装):

sudo yum install python3 python3-pip -y

验证安装:

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

2. 创建虚拟环境(隔离项目依赖)

为避免不同项目间的依赖冲突,使用venv模块创建虚拟环境:

# 创建虚拟环境目录(以myenv为例)
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate
# 激活后,终端提示符会显示虚拟环境名称(如“(myenv)”)

3. 安装Python Web框架

根据项目需求选择轻量级(Flask)或全功能(Django)框架:

4. 创建Web应用

Flask示例(快速启动)

创建项目目录并编写应用:

mkdir my_flask_app && cd my_flask_app
# 创建app.py文件
cat > app.py << 'EOF'
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask on CentOS!'
    
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=True)
EOF

运行应用:

python app.py

访问http://<服务器IP>:5000,若看到“Hello, Flask on CentOS!”则表示成功。

Django示例(完整项目结构)

创建Django项目及应用:

django-admin startproject myproject  # 创建项目
cd myproject
python manage.py startapp hello      # 创建应用

配置URL路由:

运行开发服务器:

python manage.py runserver 0.0.0.0:8000

访问http://<服务器IP>:8000,若看到“Hello, Django on CentOS!”则表示成功。

5. 配置生产环境(Gunicorn + Nginx)

开发服务器(app.run()/runserver)仅用于调试,生产环境需使用**Gunicorn(WSGI服务器)**处理Python应用,**Nginx(反向代理)**处理静态文件及负载均衡。

安装Gunicorn
pip install gunicorn

用Gunicorn启动Flask应用(假设应用入口为app.py中的app对象):

gunicorn -w 4 -b 127.0.0.1:8000 app:app

用Gunicorn启动Django应用(入口为myproject.wsgi):

gunicorn -w 4 -b 127.0.0.1:8000 myproject.wsgi
安装与配置Nginx

安装Nginx:

sudo yum install nginx -y

启动Nginx并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

配置Nginx反向代理(编辑/etc/nginx/conf.d/myapp.conf):

server {
    listen 80;
    server_name your_domain_or_ip;  # 替换为域名或服务器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;
    }
    
    # 可选:处理静态文件(需在Django中配置STATIC_ROOT)
    location /static/ {
        alias /path/to/your/static/files/;  # 替换为静态文件目录
    }
}

重启Nginx使配置生效:

sudo systemctl restart nginx

6. 防火墙设置

允许HTTP(80端口)和HTTPS(443端口)流量:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

7. SSL证书(可选,提升安全性)

使用Let’s Encrypt免费获取SSL证书,配置HTTPS:

sudo yum install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain_or_ip  # 替换为域名或IP

按提示完成配置,Certbot会自动修改Nginx配置以支持HTTPS。

8. 常见问题排查

通过以上步骤,即可在CentOS环境下完成Python Web应用的搭建与生产部署。根据项目需求,可进一步优化Nginx配置(如负载均衡、缓存)、数据库集成(如MySQL/PostgreSQL)或使用Docker容器化部署。

0
看了该问题的人还看了