uwsgi加nginx部署django restframework前后端分离项目
一.uwsgi和nginx简介
1.uwsgi(摘抄于百度百科):
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
2.nginx(摘抄于百度百科):
Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
二.使用uwsgi启动django rest framework项目(和django一样)
1.测试:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
uwsgi --http :8000 --wsgi-file test.py,使用该命令启动测试文件test.py,然后访问8000端口,看是否成功。
2.配置.ini文件(新建,任意命名,位置也可以自己选择):
2.1我这里新建的是Label_System.ini(我放在项目根目录下),现在还未使用nginx,可以先使用http端口,不适用socket:
[uwsgi]
#http是项目启动端口
#http = :9200
#socket是于=与nginx通信的端口
socket = 127.0.0.1:8001
#the local unix socket file than commnuincate to Nginx
#socket = 0.0.0.0:8001
# the base directory (full path)项目目录
chdir = /projects/bishe
# Django's wsgi file
wsgi-file = bishe/wsgi.py
# maximum number of worker processes(进程数)
processes = 4
#thread numbers startched in each worker process(线程数)
threads = 4
#这是python虚拟环境的位置
pythonpath=/root/#ROOT/.virtualenvs/vueshop/lib/python3.5/site-packages
#缓冲大小
buffer-size=65535
#monitor uwsgi status
#这是静态文件
static-map=/static=static
#stats = 127.0.0.1:9200
# clear environment on exit
vacuum = true
#daemonize = shops/uwsgi.log
2.2启动怕配置文件(uwsgi +配置文件名):


可以很容易看出启动了四个进程和对应的进程号
2.3这时查看端口8001就可以访问了。
三.使用nginx实现反向代理:
1.在/etc/nginx/conf.d目录下创建配置文件(路径可能不同,是自己安装的位置):
我创建了一个my.conf,配置如下:
#监听的端口号
listen 9200;
server_name 127.0.0.1;
charset UTF-8;
#nginx日志位置
access_log /var/log/nginx/my_web_access.log;
error_log /var/log/nginx/my_web_error.log; client_max_body_size 75M; location / {
include uwsgi_params;
#这个很重要,是uwsgi的通信端口,即socket,而不是http
uwsgi_pass 127.0.0.1:8001;
uwsgi_read_timeout 2;
}
#静态文件
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /projects/bishe/static/;
}
#前端页面
location ~\.html$ {
root /var/mytest/index/;
index index.html index.htm;
}
#前端js,css,jpg,png等路径,可以和drf的静态文件一起配置,防止前后台有一个找不到
location ~.*\.(js|css|jpg|png)$ {
root /var/mytest/;
}

重启nginx即可,记得uwsgi和nginx中的配置文件通信端口要一致
2.这时访问nginx监听端口(9000即可),这是其中的一个界面(index.html):


当然测试的界面依旧如上(这里提一下,静态文件可能找不到,需要在设置中配置(STATIC_ROOT="路径")python manage.py collectstatic生成静态文件)
3.如何关闭测试形成json数据格式呐:
在setting.py中的rest_framework配置如下即可(默认是BrowsableAPIRenderer):
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES':
( 'rest_framework.renderers.JSONRenderer', ),
}

uwsgi加nginx部署django restframework前后端分离项目的更多相关文章
- docker-compose 部署 Vue+SpringBoot 前后端分离项目
一.前言 本文将通过docker-compose来部署前端Vue项目到Nginx中,和运行后端SpringBoot项目 服务器基本环境: CentOS7.3 Dokcer MySQL 二.docker ...
- nginx+vue+uwsgi+django的前后端分离项目部署
Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1 ...
- Django+Vue前后端分离项目的部署
部署静态文件: 静态文件有两种方式 1:通过django路由访问 2:通过nginx直接访问 方式1: 需要在根目录的URL文件中增加 url(r'^$', TemplateView.as_view( ...
- Django + Taro 前后端分离项目实现企业微信登录
前言 还是最近在做的一个小项目,后端用的是Django搭配RestFramework做接口,前端第一次尝试用京东开源的Taro框架来做多端(目前需要做用于企业微信的H5端和微信小程序) 本文记录一下企 ...
- linux项目部署(非前后端分离crm)
参考博客 参考博客2---部署过程 导论:看参考博客1 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收 ...
- 使用 Nginx 部署前后端分离项目,解决跨域问题
前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...
- 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依 ...
- centos7部署前后端分离项目的过程
概述 本文主要讲解在安装了centos7的Linux主机中部署前后端分离项目的过程. 前端项目名为:vue_project:后端项目名为:django_project. 将这两个项目放在/opt/wh ...
- linux --- 部署前后端分离项目
vue + uwsgi +nginx 部署前后端分离项目 准备项目 1.将前端vue项目包和后端django项目包上传服务器,通过lrzsz,直接从windows拖进linux中 2.解压缩操作 前端 ...
随机推荐
- 移动HTML5前端性能优化指南
概述 1. PC优化手段在Mobile侧同样适用 2. 在Mobile侧我们提出三秒种渲染完成首屏指标 3. 基于第二点,首屏加载3秒完成或使用Loading 4. 基于联通3G网络平均338KB/s ...
- ubantu服务器配置ss
阿里云 ubantu16.0(自带pip) 服务端 $ apt-get install python-pip $ pip install shadowsocks $ vim /etc/shadowso ...
- SpringMVC配置多视图-内容协商原理
SpringMVC配置多视图-内容协商原理 2014年03月06日 16:46:59 日积月累_滴水石穿 阅读数:10964更多 个人分类: SpringMVC Spring Framework ...
- gcc 找不到 boot python 链接库的问题: /usr/bin/ld: cannot find -lboost_python
问题: Ubuntu 14.04,gcc 4.8.4,以默认方式编译 boost 1.67 后,使用 Boost.Python 时,gcc 提示找不到 boost python 链接库. 方案: 查看 ...
- leetcode 153. Find Minimum in Rotated Sorted Array 、154. Find Minimum in Rotated Sorted Array II 、33. Search in Rotated Sorted Array 、81. Search in Rotated Sorted Array II 、704. Binary Search
这4个题都是针对旋转的排序数组.其中153.154是在旋转的排序数组中找最小值,33.81是在旋转的排序数组中找一个固定的值.且153和33都是没有重复数值的数组,154.81都是针对各自问题的版本1 ...
- [UWP]为附加属性和依赖属性自定义代码段(兼容UWP和WPF)
1. 前言 之前介绍过依赖属性和附加属性的代码段,这两个代码段我用了很多年,一直都帮了我很多.不过这两个代码段我也多年没修改过,Resharper老是提示我生成的代码可以修改,它这么有诚意,这次就只好 ...
- xampp 使用过程中刚遇到的问题记录
开始使用XAMPP的时候,都是可以正常连接的,但是过一段时间后,在用它创建表或其他操作,会报错,提示如下错误 Access denied for user ''@'localhost' to data ...
- 初识Python-1
1,计算机基础. 2,python历史. 宏观上:python2 与 python3 区别: python2 源码不标准,混乱,重复代码太多, python3 统一 标准,去除重复代码. 3,pyth ...
- H5 65-清除浮动方式一
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- H5 40-CSS精灵图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...