部署踩坑

提前准备

在本地能够 python(3) manage.py runserver

服务器端准备

安装nginx

为了防止python的某些包没有安装

请先 sudo apt-get install python-dev

然后 sudo apt-get install nginx

使用uwsgi部署

求求你了 别用uwsgi 玩了4个小时 试了不下15种配置方法 无功而返

现在还没有solution 跳过

使用gunicorn配置

相比于uwsgi, guncorn不能再好

先进入虚拟环境source /path/to/env/bin/active

再安装gunicornsudo pip(3) install gunicorn

/path/to/env/bin/gunicorn --chdir /path/to/project --pythonpath /path/to/env/ -w4 -b0.0.0.0:8017 project.wsgi:application

这边用的8017端口

配置nginx

新建一个配置文件sudo vim /etc/nginx/sites-available/your_conf.conf

your_conf.conf中写下如下内容:

server {
  listen     80;
  server_name your_domain_name.com;
  charset     utf-8;   client_max_body_size 75M;   location /media {
      alias /path/to/project/media;
  }   location /static {
      alias /path/to/project/static;
  }   location / {
      uwsgi_pass unix:///home/tu/zqxt/zqxt.sock;
      include     /etc/nginx/uwsgi_params;
  }
}

listen默认一般都是80端口, 如果没有media文件就不配置,这个static文件夹是运行python(3) manage.py collectstatic后生成的文件夹,因为没有用到uwsgi,所以uwsgi_pass看心情随缘,include按照这个来.

然后复制到/sites-enabled/中: sudo ln -s /etc/nginx/sites-available/your_conf.conf /etc/nginx/sites-enabled/your_conf.conf

ps: nginx配置一般都在/etc/nginx/中,/sites-available/里面保存你可能要用到的configure文件

/sites-enabled/保存目前生效的configure文件

配置django中的路径url

如果不配置这个会找不到static文件夹

from django.conf.urls.static import static
from your_project import settings

urlpatterns = [
   # your path here
   path('admin/', admin.site.urls, name='admin'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

这是Django 2.0版本之后才有的,详情请见官方文档 https://docs.djangoproject.com/en/2.0/ref/urls/

然后 service nginx restart重启nginx,就可以看到了网页了.

(注意只能在gunicorn中配置的端口访问 eg: your_domain_name.com:8017)

nginx + gunicorn + django 2.0 踩坑的更多相关文章

  1. manjaro xfce 18.0 踩坑记录

    manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...

  2. Win10 安装配置 MongoDB 4.0 踩坑记

    redis 官方没有 Windows 版的,微软维护的已经好久没更新了,所以就在想着换成 MongoDB. 于是一趟被我复杂化的踩坑之旅就开始了,同时也记录一下,避免有人遇见跟我一样的问题. 首先在  ...

  3. vue2.0 踩坑记录之组件

    - did you register the component correctly? For recursive components, make sure to provide the " ...

  4. 使用Centos7.5+Nginx+Gunicorn+Django+Python3部署blog项目

    项目开发环境是 Python3.5.2+Django1.10.6+Sqlite3+Centos7.5+Nginx1.12.2+Gunicorn 发布出来供需要的同学借鉴参考.文中如有错误请多多指正! ...

  5. Django线上部署实战教程之Nginx+Gunicorn+Django篇

    #############################################   推荐 nginx supervisor gunicorn  配置简单,运维方便. Nginx (engi ...

  6. .NET CORE 2.0 踩坑记录之ConfigurationManager

    在之前.net framework 中使用的ConfigurationManager还是很方便的,不过在.NET CORE 2.0中SDK默认已经不存在ConfigurationManager. 那么 ...

  7. pytorch-1.0 踩坑记录

    参加百度的一个竞赛,官方要求把提交的代码测试环境pyorch1.0,于是将自己计算机pytorch升级到1.0. 在ubuntu下用conda install pytorch 命令安装时,效果很差,解 ...

  8. springMvc改造springboot2.0踩坑

    1. 支持jsp applicaiton.proerties添加配置 #指定视图解析路径前缀 spring.mvc.view.prefix=/WEB-INF/jsp/ #指定视图解析后缀 spring ...

  9. Visual C++ 6.0踩坑记录---在Win10下安装Visual C++ 6.0安装成功后点击“打开”按钮闪退问题

    前言: 为了更好的学习C及C++,前段时间下载了Microsoft Visual C++ 6.0(以下简称VC6),原因是VC6具有查看反汇编代码.监视内存.寄存器等功能,并且因为本人正在学习滴水逆向 ...

随机推荐

  1. 五、hibernate表与表之间的关系(一对多关系)

    数据库表与表之间的关系 一对多:一个学校可以有多个学生,一个学生只能有一个学校 多对多:一个学生可以有多个老师,一个老师可以教多个学生 一对一:一个人只能有一个身份证号,一个身份证号只能找到一个人 一 ...

  2. SQL数据库—<2>数据库基本操作(CRUD)

    学习基本操作语句之前先简单了解数据库的基本数据类型: 数据类型:    二进制数据:以十六进制形式存储        固定长度:binary        可变长度:varbinary    字符数据 ...

  3. jQuery封装轮播图插件

    // 布局要求,必须有一个容器,图片和两个按钮,布局方式自定,小圆点样式固定 // <div class="all"> // <img src="img ...

  4. DVR和NVR的区别(深度好文)(转)

    DVR接模拟摄像机,NVR是接IP camera的录像机. DVR的录像效果取决于摄像机与DVR本身的压缩算法与芯片处理能力,而NVR的录像效果则主要取决于IPcamera,因为IPcamera输出的 ...

  5. jQuery遍历之同级遍历

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  6. HashMap高并发下存在的问题

    原文链接:https://blog.csdn.net/bjwfm2011/article/details/81076736 1.什么是HashMap? HashMap底层原理 HashMap是存储键值 ...

  7. Administrator 被禁用

    Administrator 被禁用 问题: 重装系统后出现输入用户名和密码的情况,原因是Administrator被禁用. 解决方法: 1.开机后shift+重启 –>选择疑难解答 --> ...

  8. TCP/IP的分层管理_01

    1.TCP/IP协议族里最重要的一点就是分层.TCP/IP协议族按层次分别分为以下4层:         应用层,传输层,网络层和数据链路层.           应用层:决定了向用户提供应用服务时通 ...

  9. PostgreSQL按年月日分组(关键词:extract time as Year/Month/Day)

    Select EXTRACT(year from cast(joindate as timestamp)) as Year, EXTRACT(month from cast(joindate as t ...

  10. 【Vue】vue的双向绑定原理及实现

    vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,那么vue是如果进行数据劫持的,我们可以先来看一下通过控制台输出一个定义在vue初始化数据上的对象是个什么东西. 代码: var ...