阿里云centos7部署:nginx+uwsgi+django+vue

基础环境

阿里云centos7

部署架构

nginx + uwsgi
nginx提供静态文件服务和反向代理;
uwsgi充当Web服务器;

部署过程

修改项目的配置文件,配置收集静态文件之后存放的目录
STATIC_URL = '/static/'
# 配置静态文件存放目录
STATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'static_files')
收集项目的静态文件
python manage.py collectstatic
生成项目依赖文件目录
pip3 freeze > requirements.txt
安装python3和pip3

参考:
https://www.cnblogs.com/mosson/p/12485517.html
https://www.cnblogs.com/fsy12604/p/12354865.html

系统升级
yum update
安装依赖
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel zlib1g-dev zlib*
下载python3
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
解压
tar -xvJf Python-3.7.0.tar.xz
创建安装目录
mkdir -p /usr/local/python3
编译安装
cd Python-3.7.0 
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl 
make && make install
创建软链接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
# virtualenvwrapper 命令依赖virtualenv 所以要为virtualenv创建一个软链接
ln -s /usr/local/python3/bin/virtualenv /usr/local/bin/virtualenv
检查是否安装成功
python3 -V
pip3 -V
pip换源
cd ~
mkdir .pip
cd .pip
vim pip.conf
#进入后添加以下内容,保存退出.
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
安装virtualenv虚拟环境
  1. 安装virtualenvwrapper
pip3 install virtualenvwrapper
  1. 配置环境变量
vim ~/.bashrc
添加以下内容
# 配置virtualenv的同意管理目录
export WORKON_HOME=/Envs
# 网上都说用which python3 显示的路径(/usr/local/python3),但是多次尝试都不行,最后改成了,python3解释器所在的位置就可以了
# VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 这个应该也行,因为前面步骤7做了软链接
# export VIRTUALENVWRAPPER_VIRTUALENV=/Users/mosson/Library/Python/3.7/bin/virtualenv #如果出现找不到 virtualenv 就把这行也加上
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3 # 执行的virtualenvwrapper安装脚本(脚本就在安装python目录下的bin目录) 
source /usr/local/python3/bin/virtualenvwrapper.sh
  1. 刷新生效
source ~/.bashrc
  1. 虚拟环境管理
# 创建虚拟环境(默认使用python2)
mkvirtualenv 虚拟环境的名字
# 创建指定python版本的虚拟环境
mkvirtualenv -p python3解释器所在的位置 虚拟环境存放的目录(默认是在/Envs)
# 进入(激活)虚拟环境
workon 虚拟环境的名字
# 退出虚拟环境
deactivate
# 查看已有的虚拟环境
lsvirtualenv
  1. 拉取项目并测试
# 拉取项目
git clone -b dev 项目地址
# 进入刚才创建的虚拟环境
worken triton-website-web
# 安装项目依赖的环境
pip install -r requirements.txt
# 进入项目根目录并测试
python manager.py runserver 0.0.0.0:8000
安装并配置uwsgi
  1. 安装uwsgi
# 安装(注意该操作在虚拟环境外)
pip3 install uwsgi
  1. 配置uwsgi,在项目根目录创建uwsgi.ini,内容如下
#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=0.0.0.0:9000
#配置项目路径,项目的所在目录
chdir=/root/Workspace/Projects/Work/triton-website/CMS
#配置wsgi接口模块文件路径
wsgi-file=CMS/wsgi.py
#配置虚拟文件的路径
home=/root/venv/triton-website-env
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log
#配置热加载
py-autoreload=1
  1. 使用uwsgi启动项目
uwsgi --ini uwsgi.ini
  1. 查看运行状态
ps aux | grep uwsgi
或
netstat -tunlp | grep 9000
  1. 查看日志
tail -fn 50 uwsgi.log

安装nginx

参考:
https://www.cnblogs.com/angelyan/p/12919941.html
Ubuntu可参考:https://blog.csdn.net/qq_23832313/article/details/83578836

  1. 安装
yum install epel-release -y
yum install nginx -y
  1. 查看安装路径
whereis nginx
  1. 修改配置:vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    # 前端服务
    server {
        # nginx对外提供服务的端口
        listen       8080 default_server;
        listen       [::]:8080 default_server;
        # 域名或服务器ip
        server_name  101.132.167.60;
        location / {
           root /home/triton/workspace/projects/triton-website/dist; #该路径是vue build后的dist的路径
           index index.html;            #照抄
        }
       # error_page 404 /404.html;
       #     location = /40x.html {
       # }
       # error_page 500 502 503 504 /50x.html;
       #     location = /50x.html {
       # }
    }
    # 后端服务
    server {
        # 前端访问API的端口
        listen       8000;
        server_name  localhost;
        location / {
            include uwsgi_params;
            uwsgi_pass 0.0.0.0:10002;  # uwsgi服务地址,和uwsgi.ini中socket配置一致
            uwsgi_connect_timeout 30;  # 设置连接uWSGI超时时间
        }
        location ^~ /admin/ {
            uwsgi_pass 0.0.0.0:10002;
            include uwsgi_params;
        }
    
        location /static {
            alias /home/triton/workspace/projects/triton-website/static_files;  # 指明静态文件的位置
        }
        location /media {
        alias /home/triton/workspace/projects/triton-website/CMS/CMS/media;  # 配置媒体文件的位置
        }
    }
}
  1. 重启nginx
serveice restart nginx
或者
# 查看nginx运行的进程号
netstat -tunlp | grep 8080
# 杀死nginx进程
kil -9 PID
# 启动
./nginx
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值