nginx + uwsgi 部署 Django+Vue项目

  • windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc
  1. 单机本地测试运行方式,调用django第三方的wsgifef单机模块,性能很低

    python3 manage.py runserver 0.0.0.0:8000

  2. 使用uwsgi 去启动django项目,支持并发更多

  3. 准备前后端代码

  4. 先从vue前端搞起

    1. 解决node环境

    2. 更改vue发送请求的接口地址,

      这个vue发送的地址,应该是发送给 nginx代理,然后代理再转发请求给 DRF 后台

      # 用以下命令,更改vue发送的接口地址
      sed -i "s/127.0.0.1/192.168.15.71/g" /opt/s16luffy/07-luffy_project_01/src/restful/api.js

      待会要准备nginx的代理地址,如下

      192.168.15.71:8000

    3. 打包编译vue静态文件

      npm install

      npm run build

      #如果你打包不成功
      1.更换4G网络,开始打包
      2.在windows中打包,生成dist文件夹后,发送给linux
      3.在同桌机器上打包,生成dist后,发送给自己
      4.更换淘宝的 npm源,加速下载
    4. 生成的dist文件夹,就是路飞学成的静态页面,丢给nginx去返回页面即可

  5. 配置nginx.conf找到vue的静态页面

       	# 配置
    server{
    listen 80;
    server_name 项目地址.com;
    location / {
    root /opt/项目目录/dist;
    index index.html;
    # vue 结合 nginx 不再刷新出现 404
    try_files $uri $uri/ /index.html;
    }
    error_page 404 400 401 403 /jQuery404/40x.html;
    }
    # 转发请求到 192.168.15.74:9000
    server{
    listen 8000;
    server_name vuelufei.com;
    location / {
    uwsgi_pass 192.168.15.74:9000;
    include /opt/nginx112/conf/uwsgi_params;
    }
    }
  6. 配置后端代码,用uwsgi启动luffy学诚

    mkvirtualenv  虚拟环境名字  # 创建虚拟环境
    pip3 list
    pip3 install -r requirements.txt # 导入项目依赖
  7. 准备uwsgi,以及uwsgi.ini

uwsgi.ini配置参数如下

(uwsgi_xiangmuming) [root@s16ds zhangfei]# cat uwsgi.ini 

[uwsgi]
# Django-related settings
# the base directory (full path)
#指定django的项目目录,第一层
chdir = /opt/s16luffy/luffy_boy/
# Django's wsgi file
#找到django的wsgi文件
#这里需要写项目的第二层目录Alibab_crm
module = luffy_boy.wsgi
# the virtualenv (full path)
#填写虚拟环境的绝对路径
home =/root/Envs/uwsgi_luffycity
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 5
# the socket (use the full path to be safe
#指定socket协议,运行django,只能与nginx结合时使用
#指定socket协议,运行django,只能与nginx结合时使用
socket = 0.0.0.0:9000 #如果你没用nginx,只想自己启动一个http界面,用这个
#http = 0.0.0.0:8000 # ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
  1. 更改django后台的redis数据库连接

    1. 更改redis连接

      CACHES = {
      "default": {
      "BACKEND": "django_redis.cache.RedisCache",
      "LOCATION": "redis://192.168.15.71:6666",
      "OPTIONS": {
      "CLIENT_CLASS": "django_redis.client.DefaultClient",
      "CONNECTION_POOL_KWARGS": {"max_connections": 100},
      # "PASSWORD": "密码",
      "DECODE_RESPONSES":True
      }
      },
      }
    2. 更改redis数据库连接的驱动,用django的驱动

      vim /opt/项目目录/api/views/shoppingcart.py
      修改如下
      import redis
      # REDIS_CONN = redis.Redis(decode_responses=True)
      REDIS_CONN = get_redis_connection()
    3. 启动redis数据库,注意更改redis的安全模式,

      redis-6666.conf配置如下

      (uwsgi_luffycity) [root@s16ds redis-4.0.10]# cat redis-6666.conf

      port 6666
      daemonize yes
      pidfile /data/6666/redis.pid
      loglevel notice
      logfile "/data/6666/redis.log"
      dir /data/6666
      appendonly yes
      appendfsync everysec
      protected-mode no
      bind 192.168.15.71
    4. 启动redis服务端

      redis-server redis-6666.conf
  2. 确保vue和nginx,以及uwsgi都启动了,测试以浏览器访问

  3. 解决 vue 结合 nginx 刷新 404 解决办法

确保 vue router 的 mode

路径 vue项目/router/index.js

修改配置:

export default new Router({
linkActiveClass:'is-active',
mode:'history', // 改成history 模式
...
})
  1. 修改nginx.conf代码
server {
listen 80;
server_name vueluffy.com;
location / {
root /opt/luffy/dist;
index index.html;
# 主要参数
try_files uri uri/ /index.html; }
}

virtualenv

virtualevnwrapper

pyenv

nginx + uwsgi 部署 Django+Vue项目的更多相关文章

  1. ubuntu+nginx+uwsgi部署django web项目

    前言 将本地开发的django项目部署至linux上的uwsgi服务器,并配置nginx,完成基于ubuntu+nginx+uwsgi的上线运行.下面整理相关步骤. 服务器配置virtualenv 如 ...

  2. 填坑!!!virtualenv 中 nginx + uwsgi 部署 django

    一.为什么会有这篇文章 第一次接触 uwsgi 和 nginx ,这个环境搭建,踩了太多坑,现在记录下来,让后来者少走弯路. 本来在 Ubuntu14.04 上 搭建好了环境,然后到 centos7. ...

  3. Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统

    Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...

  4. nginx + uwsgi 部署django项目

    因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...

  5. nginx+uwsgi部署django项目

    1.django项目部署前需要生成admin的静态资源文件 (1)生成admin的静态资源文件 # 关闭debug模型 DEBUG = False # 允许所有域名访问 ALLOWED_HOSTS = ...

  6. Nginx + uWSGI 部署Django 项目,并实现负载均衡

    一.uWSGI服务器 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI ...

  7. CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目

    写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...

  8. 使用Nginx+uWSGI部署Django项目

    1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...

  9. nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!

    前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...

随机推荐

  1. 转:VB中的API详解

    在接下来的这篇文章中,我将向大家介绍.NET中的线程API,怎么样用C#创建线程,启动和停止线程,设置优先级和状态. 在.NET中编写的程序将被自动的分配一个线程.让我们来看看用C#编程语言创建线程并 ...

  2. mongodb "Element '{0}' does not match any field or property of class" 异常的解决方法

    在序列化的对象上增加 [BsonIgnoreExtraElements]

  3. Failed at the @ watch script 'cross-env NODE_ENV=development 使用cross-env解决跨平台设置NODE_ENV的问题

    今天在安装js依赖包时,根目录的package.json: { "private": true, "scripts": { "dev": & ...

  4. C语言异常处理之 setjmp()和longjmp()

    异常处理之除0情况 相信大家处理除0时,都会通过函数,然后判断除数是否为0,代码如下所示: double divide(doublea,double b) { const double delta = ...

  5. 汇编语言--微机CPU的指令系统(五)(条件设置字节指令)

    (10)条件设置字节指令 条件设置字节指令(Set Byte Conditionally)是80386及其以后CPU所具有的一组指令.它们在测试条件方面与条件转移是一致的,但在功能方面,它们不是转移, ...

  6. 微信小程序获取复选框全选,反选选中的值

    wxml文件 <view class="tr"> <view class="th"> <checkbox bindtap=&quo ...

  7. CSS3动画:流彩文字效果+图片模糊效果+边框伸展效果实现

    前言 首先第一步,先布局html代码如下: <div class="wrap"> <img src="images/1.jpg" class= ...

  8. apache配置-html碎片shtml格式

    修改SSI 文件 conf–httpd.conf <Directory "D:/Android/Apache2.2/htdocs">  //修改文件目录 # # Pos ...

  9. 系统调用syscall---用户态切换到内核态的唯一途径

    1.应用程序有时需要内核协助完成一些处理,但是应用程序不可能执行内核代码(主要是安全性考虑), 那么,应用程序需要有一种机制告诉内核,它现在需要内核的帮助,这个机制就是系统调用. 2.系统调用的本质是 ...

  10. CSS的基本语法

        W3School离线手册(2017.03.11版)下载:https://pan.baidu.com/s/1c6cUPE7jC45mmwMfM6598A     CSS(层叠样式表)       ...