nginx + uwsgi 部署 Django+Vue项目

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配置参数如下
```bash
(uwsgi_xiangmuming) [[email protected] 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) [[email protected] 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

?

原文地址:https://www.cnblogs.com/zhang-zi-yi/p/10792522.html

时间: 2024-10-17 23:00:01

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

结合Nginx+Uwsgi部署Django项目

大致想法以及背景: 刚开始创建Django项目,可以通过runserver命令更方便地调试程序,但是如果当一个项目完成了之后,需要部署到真正的环境,就需要考虑其稳定性.之前在写毕设的时候,写过一个自动化运维监控的项目,部署在自己的阿里云服务器上.那时候没啥经验,直接一个(pyhon runserver 0.0.0.0:8888 &)让项目在后台自己跑.所以对一些项目挂掉,数据库连接失败等问题不能够及时定位解决.所以现在花点时间结合Nginx+Uwsgi部署自己的项目,利用Nginx处理静态资源请

nginx+uwsgi部署django的简单介绍

1.安装django  环境ubuntu:sudo pip install django 2.新建一个django项目 命令:django-admin.py startproject  wlwebsite1 启动项目:python manage.py runserver 0.0.0.0:8000 浏览器查看,如下显示即正常 3.django项目有了,现在安装uwsgi 环境ubuntu:sudo pip install uwsgi 安装成功后看uwsgi版本:uwsgi --version ws

nginx+uwsgi部署django项目

操作可参考http://www.linuxyw.com/353.html (nginx+uwsgi+django+python环境部署文档) 这里只说明几点我的配置 环境: Nginx版本:1.7.9 Django版本: 1.6.8 Python版本:2.7.5 Uwsgi版本:2.0.9 安装MySQL-python: 最好源码安装,yum install -y MySQL-python可能因为路径问题import MySQLdb失败,下载地址: http://sourceforge.net/

使用Nginx+uWSGI部署Django项目

1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi #建立软链接 uwsgi --version #检查安装成功 3.基于uwsgi+django项目部署 django项目目录结构(orange_manage为app): uwsgi --ht

使用nginx+uwsgi部署django应用

使用过django来开发网页的人都知道,django的manage.py自带了一个runserver命令,这个命令使得本地调试非常方便,然而在真正上线网站时对并发能力的支持非常重要,本教程教你用nginx+uwsgi来将django应用部署在服务器上. 教程: 1.首先保证django项目在本地调试完毕.(这是废话) 2.在服务器安装好nginx和uwsgi两个软件.(yum或者apt-get) 3.找到nginx.conf文件(位置在/usr/local/nginx/conf/nginx.co

生产环境使用Nginx+uwsgi部署Django

在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中国社区 但是作为记录,我还是要记录下部署中遇

nginx+uwsgi 部署 django

预装:nginx,  django Django站点tree |Site |-----Blog(自建的项目) |-----Manage.py |-----Site(setting url wsgi-.) |       |-----wsgi.py |-----static |       |-----js |  |-----css |-----uwsgi.log |-----uwsgi-socket.xml 1.      libxml2.libxml2-devel.uwsgi 1.1 安装 注

Debian7下初次尝试Nginx+Uwsgi部署Django开发环境

之前一直都用的是新浪的SAE,但是由于各种限制,各种不爽,终于下定决心开始折腾VPS,于是在搬瓦工上买了个年付VPS,开始折腾之旅. 由于对Linux一窍不通,所以不知道如何在Linux上部署开发环境,因此事先查询了好多的资料,找到几篇可以参考的文章,由于系统版本,Nginx版本,Python版本不同,配置的情况可能也略有不同,所以先照着别人的折腾看看. debian一般默认就安装有python,所以省略这一步,不过有些系统python版本太低,需要先升级Python到需要的版本,怎么升级就不介

通过nginx+uwsgi部署django应用

上传应用 # 创建虚拟环境 pyenv virtualenv online # 进入工程目录,安装包 pip install -r requirements.txt #测试 python manage,py runserver 访问httP://ip:8000 安装uwsgi 1 # 进入虚拟环境 2 pyenv activate online 3 4 pip install uwsgi 5 6 # 测试uwsgi 7 uwsgi –http :8000 –module online.wsgi