Liunx - Centos7 上 项目打包上线 安装 Nginx|Uwsgi 环境部署 运营 Django|Vue 项目

所需工具:
  1. Uwsgi
  2. Nginx
  3. Django
  4. Vue
详情介绍

nginx&uwsgi的详情介绍、点击点击点击

Django + Uwsgi + Nginx 部署的作用

1、Django + Uwsgi + Nginx方案

  1. web项目,使用nginx的目的是为了安全和负载均衡,配置了nginx做前端代理,uwsgi作后端代理的服务器。

  2. 在处理来自Internet的请求时,要先经过nginx的处理,nginx把请求再交给uwsgi,经过uwsgi才能访问到项目本身。

2、Django + uwsgi方案

  1. 没有nginx而只有uwsgi的服务器,则是Internet请求直接由uwsgi处理,并反馈到web项目中。

  2. nginx可以实现安全过滤,防DDOS等保护安全的操作,并且如果配置了多台服务器,nginx可以保证服务器的负载相对均衡。

  3. 而uwsgi则是一个web服务器,实现了WSGI协议(Web Server Gateway Interface),http协议等,它可以接收和处理请求,发出响应等。
    所以只用uwsgi也是可以的。

3、nginx和uWSGI特点

  • nginx的作用
  1. 反向代理,可以拦截一些web攻击,保护后端的web服务器

  2. 负载均衡,根据轮询算法,分配请求到多节点web服务器

  3. 缓存静态资源,加快访问速度,释放web服务器的内存占用,专项专用

  • uWSGI的适用
  1. 单节点服务器的简易部署

  2. 轻量级,好部署

开始工作:Django部署

建议以下操作都在 虚拟环境下 使用 强烈推荐
linux下虚拟环境的使用

uwsgi:
  1. 要准备好 Django 项目,之前的和新创建的都没关系。

  2. # 安装 uwsgi
    (env)[root@linux-node1 /]$  pip install uwsgi
    

    cd 到项目 目录下 (不是子应用下也不是父应用下) Uwsgi启动Django

    (env)[root@linux-node1 /]$  cd /home/work/django/
    		# 这里要写你的端口
    (env)[root@linux-node1 django/]$  uwsgi --http 1.1.1.3:80 --file 项目名称/wsgi.py --static-map=/static=static
    
  3. 配置文件uWSGI.ini

    		# 项目路径
    (env)[root@linux-node1 /]$  vim /home/work/demo2/uwsgi.ini
    

    注意下面的项目路径一点要写自己的!!!

    # uwsgi.ini
    
    [uwsgi]
    # 注意这里一定要写 0.0.0.0
    socket = 0.0.0.0:3031                   # 指定socket监听的地址和端口
    chdir = /home/work/demo2                # 项目路径              
    wsgi-file = /home/work/demo2/wsgi.py    # django的wsgi文件路径
    processes = 5                           # 启动五个线程
    threads = 30                            # 启动30个进程
    master = true
    daemonize = /home/work/demo2/uwsgi.log  # 日志存放路径
    module=demo2.wsgi                       # 使用demo2.wsgi模块
    pidfile = /home/work/demo2/uwsgi.pid    # uwsgi启动进程id存放路径
    chmod-socket=666                        # socket权限
    enable-threads = true                   # 允许用内嵌的语言启动线程,这将允许你在app程序中产生一个子线程
    
  4. 最后启动

    (env)[root@linux-node1 django/]$  uwsgi --ini uwsgi.ini  
    

nginx:
  1. 配置nginx YUM源

    (env)[root@linux-node1 /]$  vim /etc/yum.repos.d/nginx.repo
    
    # nginx.repo
    
    [nginx]
    name=nginx repo
    # 下面这行centos根据你自己的操作系统修改比如:OS/rehel
    # 6是你Linux系统的版本,可以通过URL查看路径是否正确
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    
  2. 安装nginx

    (env)[root@linux-node1 /]$  yum -y install nginx
    
  3. 配置nginx+uwsgi

    (env)[root@linux-node1 /]$  vim /etc/nginx/conf.d/django.conf 
    
    server {
        listen       8888;
        server_name  192.168.56.11;    # 此处要写你的IP
        client_max_body_size 5M;
        gzip on;
        gzip_buffers 32 4K;     #压缩在内存中缓冲32块 每块4K
        gzip_comp_level 6 ;     #压缩级别 推荐6
        gzip_min_length 4000;     #开始压缩的最小长度4bit
            gzip_types text/plain application/json application/javascript application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;
            location / {
                  include uwsgi_params;
                  uwsgi_pass 127.0.0.1:3031;     # 指定uWSGI-server的IP地址和端口,或者socket文件
                  uwsgi_ignore_client_abort on;  # 忽略uWSGI-Server返回的终止响应.
            }
    
            error_page 404 /404.html;
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
    
    }
    
  4. 使用 nginx + uwsgi 启动django

    # 开启nginx
    (env)[root@linux-node1 django/]$  systemctl start nginx
       
    # 启动uwsgi的django项目
    (env)[root@linux-node1 django/]$  uwsgi --ini uwsgi.ini   
    
    http://192.168.56.11:8888/ 访问项目
    
    # 关闭uwsgi
    uwsgi --stop uwsgi.pid  	
    

此时使用浏览器访问 http://192.168.56.11:8888/ 就会看到 Django项目的启动

在这里插入图片描述


如果大家此时报错 或看不到 最后的完成效果

# 查看此时 nginx 的状态
(env)[root@linux-node1 django/]$  systemctl status nginx

# 或者
# 查看 日志 nginx & uwsgi是否出现问题 

(env)[root@linux-node1 django/]$  tail -f filename (默认最后10行,相当于增加参数 -n 10)
(env)[root@linux-node1 django/]$  tail -n 20 filename (显示filename最后20行)

此时我的使用是没有问题的,如果你的出了问题可能是 环境问题 此时推荐虚拟环境,


Vue部署:
  1. 将 Vue项目 打包发送到Linux服务器上

    进入Vue目录 执行

    npm run build
    

    执行之后就会生成 dist 文件
    在这里插入图片描述

  2. 找到此文件的路径,打包发送到 Linux 服务器上
    这里可以使用 Xftp 直接拖拽,也可以 使用 rz 注:这里 要说一下如果使用 rz 命令是需要开发工具来支持的,如:Xshell

    (env)[root@linux-node1 work/]$  rz
    
  3. 解压收到的 dist 包

    # 找到解压包的位置
    (env)[root@linux-node1 work/]$  unzip filename.zip
    
  4. 配置Vue
    生成配置文件 vue.conf

    (env)[root@linux-node1 /]$  vim /etc/nginx/conf.d/vue.conf
    
    # vue.conf
    
    server {
        listen 9000;
        server_name 1.1.1.3;    # 你的 ip 地址
        #access_log logs/access_example.log  main;
        root /home/work/dist;     # dist文件的所在位置
        location / {
                try_files $uri $uri/ @router;
        }
        location @router {
                rewrite ^.*$ /index.html last;
        }
    }
    

    回到dist的目录下

  5. 启动查看

    # 在 dist 目录下
    (env)[root@linux-node1 dist/]$  systemctl reload nginx
    

此时使用浏览器访问 http://192.168.56.11:9000/ 就会看到 Vue 项目的启动

在这里插入图片描述

Django 的部署和 Vue 的部署就已经全部完成。
此时 Django&Vue 是同一项目 那么 端口的对应是 最关键的

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值