1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 阿里云centos7部署:nginx+uwsgi+django+vue

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

时间:2020-09-03 17:47:56

相关推荐

阿里云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

参考:

/mosson/p/12485517.html

/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 /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/python3ln -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 -Vpip3 -V

pip换源

cd ~mkdir .pipcd .pipvim pip.conf#进入后添加以下内容,保存退出.[global]index-url = /pypi/simple

安装virtualenv虚拟环境

安装virtualenvwrapper

pip3 install virtualenvwrapper

配置环境变量

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

刷新生效

source ~/.bashrc

虚拟环境管理

# 创建虚拟环境(默认使用python2)mkvirtualenv 虚拟环境的名字# 创建指定python版本的虚拟环境mkvirtualenv -p python3解释器所在的位置 虚拟环境存放的目录(默认是在/Envs)# 进入(激活)虚拟环境workon 虚拟环境的名字# 退出虚拟环境deactivate# 查看已有的虚拟环境lsvirtualenv

拉取项目并测试

# 拉取项目git clone -b dev 项目地址# 进入刚才创建的虚拟环境worken triton-website-web# 安装项目依赖的环境pip install -r requirements.txt# 进入项目根目录并测试python manager.py runserver 0.0.0.0:8000

安装并配置uwsgi

安装uwsgi

# 安装(注意该操作在虚拟环境外)pip3 install uwsgi

配置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

使用uwsgi启动项目

uwsgi --ini uwsgi.ini

查看运行状态

ps aux | grep uwsgi或netstat -tunlp | grep 9000

查看日志

tail -fn 50 uwsgi.log

安装nginx

参考:

/angelyan/p/12919941.html

Ubuntu可参考:/qq_23832313/article/details/83578836

安装

yum install epel-release -yyum install nginx -y

查看安装路径

whereis nginx

修改配置: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;# 域名或服务器ipserver_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; # 配置媒体文件的位置}}}

重启nginx

serveice restart nginx或者# 查看nginx运行的进程号netstat -tunlp | grep 8080# 杀死nginx进程kil -9 PID# 启动./nginx

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。