CentOS 6.5 是一款广泛使用的 Linux 发行版,虽然其生命周期已结束,但在某些遗留系统或特定环境中仍被部署,在搭建 Python Web 应用时,uWSGI 作为一款高性能的 WSGI 服务器,常与 Nginx 配合使用,以实现高效的请求处理和资源管理,本文将详细介绍在 CentOS 6.5 系统上安装、配置和优化 uWSGI 的过程,帮助用户顺利完成环境搭建。

系统环境准备
在开始之前,确保系统已更新至最新状态,并安装必要的编译工具和依赖库,执行以下命令更新系统并安装基础工具:
sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum install python-devel python-pip openssl-devel -y
这些工具将帮助编译 uWSGI 及其依赖模块,确保后续步骤顺利进行。
安装 Python 和 pip
CentOS 6.5 默认 Python 版本为 2.6,建议升级至 Python 2.7 以获得更好的性能和兼容性,可以从 Python 官方源下载并编译安装:
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz tar -xvf Python-2.7.18.tgz cd Python-2.7.18 ./configure --prefix=/usr/local make && make install
安装完成后,创建软链接替换默认 Python:
sudo ln -s /usr/local/bin/python2.7 /usr/bin/python
升级 pip 并安装虚拟环境工具:
sudo pip install --upgrade pip sudo pip install virtualenv
创建虚拟环境并安装 uWSGI
为避免依赖冲突,建议为项目创建独立的 Python 虚拟环境:

mkdir ~/myproject && cd ~/myproject virtualenv venv source venv/bin/activate
激活虚拟环境后,使用 pip 安装 uWSGI:
pip install uwsgi
安装完成后,可通过 uwsgi --version 验证是否成功。
配置 uWSGI
uWSGI 的配置通常通过 INI 文件实现,创建一个名为 myapp.ini 的配置文件,内容如下:
[uwsgi] socket = /tmp/myapp.sock chmod-socket = 666 master = true processes = 4 threads = 2 chdir = /home/user/myproject module = myapp:app callable = app pidfile = /tmp/myapp.pid daemonize = /var/log/uwsgi.log
关键参数说明:
socket:定义 uWSGI 监听的 Unix 套接字文件。processes和threads:设置工作进程数和线程数,根据服务器负载调整。chdir:项目根目录,确保 Python 能找到模块。module和callable:指定 WSGI 应用入口。
配置 Nginx 作为反向代理
安装 Nginx 并修改其配置文件,以将请求转发给 uWSGI:
sudo yum install nginx -y sudo vi /etc/nginx/conf.d/myapp.conf
server {
listen 80;
server_name your_domain.com;
location / {
include uwsgi_params;
uwsgi_pass unix:///tmp/myapp.sock;
}
} 保存后,启动 Nginx 并设置开机自启:

sudo service nginx start sudo chkconfig nginx on
启动和管理 uWSGI
直接运行 uwsgi myapp.ini 可启动服务,但推荐使用 systemd 或 supervisord 进行管理,以 systemd 为例:
创建服务文件 /etc/systemd/system/uwsgi.service:
[Unit] Description=uWSGI service After=network.target [Service] User=user Group=user WorkingDirectory=/home/user/myproject ExecStart=/home/user/myproject/venv/bin/uwsgi myapp.ini [Install] WantedBy=multi-user.target
启用并启动服务:
sudo systemctl start uwsgi sudo systemctl enable uwsgi
优化和调试
若遇到问题,可检查 /var/log/uwsGI.log 或 Nginx 错误日志,常见优化措施包括:
- 调整
processes和threads以匹配 CPU 核心数。 - 启用 uWSGI 的缓存功能,减少重复计算。
- 使用
emperor模式管理多个应用,提升资源利用率。
FAQs
如何解决 uWSGI 启动后 Nginx 502 错误?
答:通常是由于 uWSGI 未正常启动或权限问题导致,检查 uwsgi.log 日志,确认套接字文件路径与 Nginx 配置一致,并确保 chmod-socket 设置正确,验证 chdir 和 module 参数是否指向正确的项目路径。
如何在 CentOS 6.5 上升级 Python 到 3.x 版本?
答:可从 Python 官网下载 Python 3.x 源码,按类似 Python 2.7 的编译步骤安装,但需注意,CentOS 6.5 的旧版本工具可能不支持部分 Python 3 特性,建议使用 deadsnakes PPA 或源码编译后,通过 alternatives 管理多版本 Python。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复