Djnago项目部署之 uWSGI+Nginx

本文详细介绍如何在Ubuntu系统中搭建Python虚拟环境,配置并部署Web应用。包括使用uWSGI和Nginx,从环境搭建、代码上传、依赖管理到服务器配置全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、搭建服务器虚拟环境

(1)进入乌班图系统并创建虚拟python3环境

mkvirtualenv -p python3  环境名称

(2)打开虚拟环境

workon 环境名称

(3)
退出虚拟环境

deactivate

(4)删除洵虚拟环境

rmvirtualenv 虚拟环境名

(5)通过ftp软件将项目代码和plist.txt文件上传到服务器。

(6)在本机进入虚拟环境,执行命令导出当前需要的所有包。

pip freeze > plist.txt

(7)在虚拟环境上安装包。

pip install -r plist.txt

2、WSGI 和 uWSGI

WSGI:全拼为Python Web服务器网关接口,Python Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。没有正式的实现,因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行。

项目标准化会生成一个wsgi.py文件,确定了设置模块,应用程序对象。

  • application对象:在Python模块中使用application对象与应用服务器交互。
  • settings模块:用于进行项目配置。

uWSGI:uWSGI实现了WSGI的所有接口,是一个快速,自我修复,开发人员和系统管理员友好的服务器。uWSGI代码完全用C编写,效率高,性能稳定。

(1)安装uWSGI。

pip install uwsgi

(2)配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下:

[uwsgi]
#使用nginx连接时使用
socket=192.168.206.128:8000
#直接做web服务器使用
#ttp=192.168.206.128:8000
#项目目录
chdir=/home/python/zhaochaoqun/work01/project
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=project/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
virtualenv=/home/python/.virtualenvs/zhao

(3)启动。

uwsgi --ini uwsgi.ini

(4)查看。

ps ajx|grep uwsgi

(5)停止

uwsgi --stop uwsgi.pid

Nginx安装与配置

nginx详情见官方文档

1)下载nginx后放到桌面上,解压缩。

tar zxvf nginx-1.6.3.tar.gz

2)进入nginx-1.6.3目录,依次执行以下命令进行安装。

./configure
sudo make
sudo make install

3)默认安装到/ usr / local / nginx /目录,进入此目录。

cd /usr/local/nginx/

(备注) 如需nginx其他扩展模块后续更新

4)启动。

sudo sbin/nginx

5)查看进度。

ps ajx|grep nginx

6)停止。

sudo sbin/nginx -s stop

指向uwsgi项目

1)打开conf / nginx.conf文件。

sudo gedit conf/nginx.conf

2)在服务器路由器下添加新的位置项,指向uwsgi的ip与端口。

location / {
            #将所有的参数转到uwsgi下
            include uwsgi_params;
            #uwsgi的ip与端口
            uwsgi_pass 127.0.0.1:8080;
        }

效果图
在这里插入图片描述

静态文件

所有的静态文件都会由nginx处理,不会将请求转到uwsgi。
1)打开conf / nginx.conf文件。

sudo gedit conf/nginx.conf

2)在服务器上的下添加新的位置项,用于处理静态文件。

 location /static {
        alias /var/www/test6/static/;
    }

3)在服务器上创建如下目录。

sudo mkdir -vp /var/www/test6/static/

修改目录权限。

sudo chmod 777 /var/www/test6/static/

最终目录结构如下图:
在这里插入图片描述
4)修改test6 / settings.py文件。

STATIC_ROOT='/var/www/test6/static/'
STATIC_URL='/static/'

5)收集所有静态文件到static_root指定目录。

python manage.py collectstatic

按提示输入是,收集文件。
在这里插入图片描述
6)停止后再启动nginx服务。

布署完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值