nginx+uwsgi启动Django项目的详细步骤
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产。nginx+uwsg
千家信息网最后更新 2026年11月02日nginx+uwsgi启动Django项目的详细步骤
当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产。
nginx+uwsgi+django是我们常用的django部署方式。nginx作为最前端的服务器,他负责接收所有的客户端请求,对于请求的静态文件,由nginx服务器自己完成,因为它具有很好处理静态文件的能力,性能进行过优化,支持高并发量;uWSGI服务器作为支持服务器,是用来服务nginx的,nginx将请求的动态文件交给uWSGI进行处理。uWSGI实现了uwsgi、wsgi和http协议,uwsgi协议是uWSGI自定义的协议,定义的是框架(django)和服务器对接的接口。
1.安装项目环境
系统环境:ubuntu16.04
python环境:python3.5.2
Django版本:django1.11.7
nginx环境:nginx_1.10.3
虚拟环境:virtualenv15.1.0
uwsgi版本:uwsgi2.0.17.1
安装并进入项目虚拟环境:
sudo apt-get install virtualenvvirtualenv -p python3 env_my_project source env_my_project/bin/activatepip install -r requirements.txt
2.项目配置及运行测试
修改项目配置文件:
cp my_project/settings_local.py.example my_project/settings_local.py
修改es配置文件:
cp rs_es/es_settings.py.example rs_es/es_settings.py
wsgi.py:
import osfrom django.core.wsgi import get_wsgi_applicationos.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings_local")application = get_wsgi_application()项目运行测试:
python manage.py collectstatic # 收集静态文件python manage.py makemigrationspython manage.py migratepython manage.py runserver 0.0.0.0:8001
3.NGINX和UWSGI相关配置
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/my_projectsudo ln -s /etc/nginx/sites-available/my_project /etc/nginx/sites-enabled/sudo vim /etc/nginx/sites-enabled/my_project
nginx配置:
upstream my_project{ server unix:///var/run/my_project.sock;}server { listen 8001; //服务的端口号 服务通过nginx与uwsgi通信来启动 server_name 192.168.xx.xx; //nginx代理的ip charset utf-8; # max upload size client_max_body_size 10M; # send all non-media requests to the Django server. location / { uwsgi_pass my_project; include /etc/nginx/uwsgi_params; } location /static/ { root /home/ubuntu/my_project; }}Uwsgi配置:
sudo mkdir /var/log/uwsgisudo chmod -R 777 /var/log/uwsgiuwsgi.ini:[uwsgi]chdir=/home/ubuntu/my_projecthome=/home/ubuntu/my_project/env_my_projectmodule=my_project.wsgi:applicationsocket=/var/run/my_project.sockchmod-socket = 666master=Trueprocesses = 5max-requests=5000# clear environment on exitvacuum=Truepidfile=/var/run/my_project.piddaemonize=/var/log/uwsgi/my_project.log# git pull 自动重启服务touch-reload=.git/index
4.配置Emperor mode监听和系统自动启动uwsgi
配置Emperor mode监听
sudo mkdir /etc/uwsgisudo mkdir /etc/uwsgi/vassalssudo ln -s /home/ubuntu/my_project/uwsgi.ini /etc/uwsgi/vassals/
系统自动启动uwsgi
sudo vim /etc/rc.local/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals
5.通过uwsgi启动django服务
启动uwsgi
uwsgi --ini uwsgi.ini
重启nginx
sudo service nginx restart
启动django服务
sudo uwsgi --reload /var/run/my_project.pid
此时在浏览器通过ngnix代理出来的ip和端口即可访问服务
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
服务
配置
项目
文件
服务器
环境
测试
系统
静态
支持
性能
版本
代理
处理
开发
监听
运行
安全
中用
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖南永感互联网科技有限公司
涨乐互联网科技
关于新基建和互联网科技
深圳互联网络科技有限公司
苏州大垚互联网科技
哈尔滨新华互联网科技
华中科技有哪些互联网大佬
互联网金融科技公司干啥的
互联网科技与管理
互联网为啥属于高科技
玉溪新华互联网科技好不好
科技赋能视角下互联网保险发展
区块链结合互联网科技
互联网公司高科技产品
启辰互联网科技
宇信科技在杭州互联网排第几
南京一网一红互联网科技有限公司
科技信息时代互联网发展
科技互联网企业在行动
现代科技的标志之一的互联网
中智农互联网科技
湖南永感互联网科技有限公司
美国互联网科技巨头监管
互联网科技上市公司
顺网科技2021年互联网排名
湖南洣水互联网科技有限公司扣款
保险科技服务互联网营销体系
版纳互联网科技选哪家
瑞安市蟠桃会互联网科技有限公司
互联网科技创业有什么好项目