Centos6.8 + Nginx + Uwsgi部署Django项目

mac2025-06-12  28

部署前保障python,nginx,数据库等已经安装完成。

上传源码

我们这里的Django项目叫:django_demo

只需要上传:项目的配置目录以及各应用的目录即可,数据库建议从测试环境导入到线上环境(当然使用数据迁移也可以)

上传步骤:(略)

上传后的项目根目录为:/home/my_project/django_demo

上传后需要将项目的配置文件这几个地方修改一下:

DEBUG = False ALLOWED_HOSTS = ['*']

导出本地依赖模块信息并在服务端安装

# 查看测试环境安装的模块信息 pip freeze > requirements.txt # 线上环境:从文件中读取要安装的模块并执行安装 pip install -r requirements.txt

安装配置uwsgi,并配置nginx

安装uwsgi(我这里是在项目独属的virtualenv环境里面安装的,项目多的话,virtualenv环境分开好管理)

虚拟环境教程:https://blog.csdn.net/qq_34939371/article/details/102572006

进入项目独属的virtualenv环境 (我这里创建的项目环境为django_demo)然后安装uwsgi

进入项目目录,安装依赖模块

配置nginx虚拟机

打开配置文件(根据自己nginx安装情况,我这是多站点,每个项目都单独一个配置)

配置虚拟机

server { listen 80; server_name 域名; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } location /static { # 配置静态文件的路径(这个静态文件的路径根据各个项目可能有所不同) alias /home/my_project/django_demo/static; } }

然后重启nginx:service nginx restart

在项目的根目录(/home/my_project/django_demo)创建配置文件:uwsgi.ini,然后在里面添加如下内容:

[uwsgi] #项目的根目录 chdir = /home/my_project/django_demo #项目的对接wsgi.pi文件 module = django_demo.wsgi:application #项目执行的端口号,和nginx配置的要一致 socket = 127.0.0.1:8000 #是否以主进程模式允许 master = true #开启的工作进程数量 processes=4 #日志文件路径,前提是该文件要存在,且可写 daemonize = /home/my_project/django_demo/run.log #表示不记录正常信息,只记录错误信息,否则你的日志可能很快就爆满 disable-logging = true #当服务器退出的时候自动清理环境 vacuum = true #进程信息文件路径(这里指项目的根目录) pidfile=%(chdir)/uwsgi.pid

配完就可以运行起uwsgi了:

uwsgi --ini uwsgi.ini # 关闭uwsgi uwsgi --stop ./uwsgi.pid # 重启 uwsgi --reload ./uwsgi.pid

 

最新回复(0)