django+uwsgi+nginx 部署项目
来源:互联网 发布:上瘾 网络剧 日本评论 编辑:程序博客网 时间:2024/05/24 15:42
django 项目完成后,使用django自带的runserver开发服务器使用在生产环境是不行的,性能远远跟不上。为此需要使用别的web服务器代替。
这里我就使用黄金搭配uwsgi和nginx。uwsgi是一个web服务器,其优点就是处理动态请求是强项。下面我们先将wusig和django搭配起来。
运行环境 ubuntu
1.安装 pip install uwsgi
2.进入django 项目目录
3.测试uwsgi +django能否使用
uwsgi --http 本机ip:端口 --file 项目名/wsgi.py --static-map=/static=项目static所在路径
浏览器 ip+端口运行 成功访问到项目页面,uwsgi+django 环境没有问题
4.编辑uwsgi.ini 配置文件
在 django 项目同级目录创建scripts目录,并且在目录中创建uwsgi.ini 文件,写入一下配置信息
# uwsig使用配置文件启动[uwsgi]# 项目目录chdir=/home/windblow/Desktop/django/Yuwei# 指定项目的applicationmodule=Yuwei.wsgi:application# 指定sock的文件路径 socket=/home/windblow/Desktop/django/scripts/uwsgi.sock# 进程个数 workers=5pidfile=/home/windblow/Desktop/django/scripts/uwsgi.pid# 指定IP端口 http=10.241.220.189:8080# 指定静态文件static-map=/static=/home/windblow/Desktop/django/Yuwei/yunweimain/static# 启动uwsgi的用户名和用户组uid=rootgid=root# 启用主进程master=true# 自动移除unix Socket和pid文件当服务停止的时候vacuum=true# 序列化接受的内容,如果可能的话thunder-lock=true# 启用线程enable-threads=true# 设置自中断时间harakiri=30# 设置缓冲post-buffering=4096# 设置日志目录daemonize=/home/windblow/Desktop/django/scripts/uwsgi.logbaocun
ip + 端口访问,成功。
uwsgi配置完成
5 由于uwsgi 的静态请求功能并不是它的强项,而nginx的强项就是静态请求,而且其并发性能很好。所以我们用nginx+uwsgi的方式进行部署。
具体流程是客户端碰请求静态文件时候,交给nginx处理,碰到动态请求时候,nginx交给uwsgi进行处理。所有请求最先交给nginx处理,然后再给uwsgi。
大致的机构如下:
客户端请求-------->nginx--------->uwsgi--------->django项目。
6.安装nginx
apt-get install nginx
安装完成后,运行如下命令:
/etc/init.d/nginx start
得到 欢迎界面。说明nginx安装成功。
7.接下来要将nginx和uwsgi进行联系起来。
cd /etc/nginx
默认配置都在nginx.conf中。
server { listen 80; # 我要监听那个端口 server_name 10.241.220.189; # 你访问的路径前面的url名称 access_log /var/log/nginx/access.log; # Nginx日志配置 charset utf-8; # Nginx编码 gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持压缩的类型 error_page 404 /404.html; # 错误页面 error_page 500 502 503 504 /50x.html; # 错误页面# 指定项目路径uwsgi location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls) include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的 uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间 uwsgi_pass unix:/home/windblow/Desktop/django/scripts/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他 }# 指定静态文件路径location /static/ { alias /home/windblow/Desktop/django/Yuwei/yunweimain/static/; index index.html index.htm; }}
保存重启nginx
/etc/init.d/nginx restart
成功访问到我们的页面。
- Nginx+uwsgi部署django项目
- uwsgi + nginx + django 部署项目
- django+uwsgi+nginx 部署项目
- Ubuntu+nginx+uwsgi部署Django项目
- CentOS nginx django uwsgi mysql 部署项目
- 使用uwsgi+nginx部署django项目
- uWSGI + Nginx 部署 Django 项目笔记
- 通过uwsgi和nginx部署django项目
- nginx+uwsgi+django部署python项目
- Ubuntu下Django+uwsgi+nginx项目部署
- Django+Nginx+uwsgi部署
- nginx uwsgi django部署
- nginx uwsgi 部署django
- django nginx+uwsgi部署
- Django+uWsgi+nginx部署
- Nginx+uWSGI+Django部署
- nginx+uwsgi部署django
- nginx+uwsgi部署django
- 1057. 数零壹(20)
- MyBatis向sql语句传多个参数方法
- Jsoup官方教程(三)【数据抽取】
- Eclipse自动补全与快捷键设置
- java中的反射机制
- django+uwsgi+nginx 部署项目
- Ubuntu从字符界面打开图形界面,别用startx
- 最小生成树和最短路径
- zabbix通过jmx监控tomcat
- kaldi安装(Ubuntu)
- mysql--字符类型
- wpa_supplicant连接Wifi错误分析
- 利用Python进行数据分析笔记-第三章-ipython
- Jsoup官方教程(四)【数据修改】