CentOS Python Web开发如何搭建
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)框架:
- Flask(轻量级,适合小型项目/快速原型):pip install Flask
- Django(全功能,适合大型项目/复杂应用):pip install 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路由:
- 编辑myproject/urls.py,添加应用路由:from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('hello.urls')), # 包含应用的URL配置 ]
- 在hello目录下创建urls.py,定义具体路由:from django.urls import path from . import views urlpatterns = [ path('', views.hello, name='hello'), ]
- 编写视图函数:编辑hello/views.py:from django.http import HttpResponse def hello(request): return HttpResponse("Hello, Django on CentOS!")
运行开发服务器:
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
- -w 4:启动4个工作进程(根据CPU核心数调整);
- -b 127.0.0.1:8000:绑定到本地8000端口(仅允许Nginx访问)。
用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. 常见问题排查
- 端口冲突:若端口被占用,可通过sudo netstat -tulnp | grep 端口号查找并终止占用进程,或修改应用端口。
- 权限问题:确保项目目录及文件权限正确(如chown -R nginx:nginx /path/to/project)。
- 依赖缺失:若运行时报错缺少模块,可通过pip install 模块名安装。
通过以上步骤,即可在CentOS环境下完成Python Web应用的搭建与生产部署。根据项目需求,可进一步优化Nginx配置(如负载均衡、缓存)、数据库集成(如MySQL/PostgreSQL)或使用Docker容器化部署。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Python Web开发如何搭建
本文地址: https://pptw.com/jishu/739322.html
