记一次 centos7 + vue + nginx + uwsgi + django-rest + mysql 的部署过程

 

弄完了感觉也没那么复杂,但的确花了我2天的时间,主要是因为python版本和虚拟环境的问题

需要注意的事项已用黑体标出,这些步骤相当关键。关键的关键是要在虚拟环境中启动uwsgi,它才能找到各种依赖包

一、安装python3

       因为centos7预装的是python2,但现在的程序都用的是pyhton3,所以要装上。

       下载python3.7.4源码包: wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

        解压缩:tar -zxvf Python-3.7.4.tgz

        进入解压后的目录,执行下面命令手动编译:

                 ./configure prefix=/usr/local/python3 
                  make && make install

        添加软链接: ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

        python3自带了pip3,所以同样为pip3添加软链接:ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

        最后python3 -V 和 pip3 -V检查版本对不对

        这样的话系统中就存在了两个版本的python和pip,想用哪个就用哪个

二、安装uwsgi

        注意得使用pip3安装这样对应的版本才是python3

        执行命令 pip3 install uwsgi ,会被安装到python3对应的lib/site-packages目录下。

        uwsgi --version 检查版本。

三、创建虚拟环境

        这里我没有使用virtualenv命令,直接使用python3 -m venv env命令。

        从django项目中导出requirement.txt。

        激活虚拟环境:source env/bin/activate

        安装依赖:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirement.txt。

 四、配置uwsgi配置文件

        vim uwsgi.ini

socket = 127.0.0.1:3031
chdir = /home/head/uwb/
wsgi-file = uwb/wsgi.py
home = /home/head/env/
processes = 4
threads = 2
stats = 127.0.0.1:9191

        home 指向刚刚创建的虚拟环境目录,这很重要,否则会报各种找不到module的错误。其他配置项就不解释了,自行查阅。

 五、配置nginx

        安装过程就不讲了。

        首先配置前端代码。在Vue项目中使用 npm run build 命令生成dist目录,上传至nginx目录,添加如下配置:

 location / {
            root   dist;
            index  index.html;
        }

         接下来配置接口访问,也就是访问django应用。为了与静态资源区分开,将所有的接口访问都加上了前缀/api。我们不需改动我们的后端django代码,在nginx和uwsgi中配置可以达到这一效果。配置如下:

     

 location /api {
        uwsgi_param SCRIPT_NAME /api;
        include  uwsgi_params;
        uwsgi_pass 127.0.0.1:3031;
    }

     这里 uwsgi_pass 和 uwsgi.ini 配置文件中的socket配置项一致,这就是nginx和uwsgi通讯的端口。

     同时在uwsgi.ini 配置文件中加入一行:route-run = fixpathinfo: 注意最后是冒号,表示传过来的请求都有一个固定前缀。

 

六、启动uwsgi

       当然要先启动nginx、mysql。

       最好还是在虚拟环境中启动,避免出现一些莫名其妙的import error

       执行命令:uwsgi uwsgi.ini。

       如果出现mysql_config not found ,再安装以下东西

               sudo yum install mysql-devel gcc gcc-devel python-devel
               sudo easy_install mysql-python

       OK,大功告成!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值