CentOS7,Python3.6.8,Nginx1.17.8
yum update -y # 更新系统软件包
提前把python包放在服务器上
解压python安装包
tar -xvf Python-3.6.8.tar.xz
进入安装路径
cd Python-3.6.8
指定安装位置,配置python3环境
./configure --prefix=/usr/local/python3
编译&编译安装
make && make install
建立python3软链接(快捷方式)
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
建立pip3软链接(快捷方式)–任何路径下打开命令行安装
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
升级pip
pip3 install --upgrade pip
检查Python3及pip3是否正常可用:
python3 -V
pip3 -V
安装uwsgi(用于启动Django),及建立软链接
pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
查看 uwsgi 版本
uwsgi --version
pip3 install django==3.1.1
看项目需求,下载其他依赖
安装在/usr/local/目录下
解压
tar -zxvf nginx-1.17.8.tar.gz
进入安装目录
cd nginx-1.17.8
#Nginx安装ssl模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
编译及编译安装
make && make install
查看nginx版本
/usr/local/nginx/sbin/nginx -v
进入目录编辑配置nginx.conf文件
cd /usr/local/nginx/conf/
vim nginx.conf
检查配置文件nginx.conf的正确性命令:
/usr/local/nginx/sbin/nginx –t
测试:linux环境下启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
重新加载
/usr/local/nginx/sbin/nginx -s reload
nginx.conf 配置文件
server {
listen 80;
server_name localhost;
location / {
root /usr/local/projectName/vue-element-admin-master/dist;
index index.html;
}
location /api {
include uwsgi_params;
uwsgi_pass 0.0.0.0:8000;
}
location /admin {
include uwsgi_params;
uwsgi_pass 0.0.0.0:8000;
}
location /static {
alias /usr/local/projectName/vue-element-admin-master/dist/static;
}
}
listen
后接端口,即设定访问的端口
server_name
为访问域名
location /
后描述前端 dist 项目文件夹的存放地址, dist 即为前端项目的根目录
location /api
后为后端项目运行端口 ,注意后端项目的路由是由/api /*开头
location /static
静态资源访问路径
打包vue前端,生成的dist文件放在了django项目文件夹下,DJango项目文件直接上传到服务器上。
新建文件 uwsgi.ini,放置于 Django 项目的根目录下
[uwsgi]
# 对外提供 http 服务的端口
# http = :8000
#the local unix socket file than commnuincate to Nginx 用于和 nginx 进行数据交互的端口
socket = 0.0.0.0:8000
# the base directory (full path) django 程序的主目录
chdir = /usr/local/projcetName/
# Django's wsgi file
wsgi-file = projcetName/wsgi.py
# maximum number of worker processes
processes = 16
# thread numbers startched in each worker process
threads = 10
# 一个高阶的cheap模式,在启动的时候只会分配n个工作进程,并使用自适应算法启动新的进程
cheaper = 4
# 在经过sec秒的不活跃状态的进程会被销毁(进入了cheap模式),并最少保留cheaper指定的进程数
idle = 3600
# monitor uwsgi status 通过该端口可以监控 uwsgi 的负载情况
stats = 0.0.0.0:9191
# 设置一个请求的超时时间(秒),如果一个请求超过了这个时间,则请求被丢弃
# harakiri = 60
# 当一个请求被harakiri杀掉会,会输出一条日志
# harakiri-verbose = true
# 开启内存使用情况报告
memory-report = true
# 设置平滑的重启(直到处理完接收到的请求)的长等待时间(秒)
reload-mercy = 10
# 设置工作进程使用虚拟内存超过N MB就回收重启
# reload-on-as = 1024
# 自动给进程命名
auto-procname = true
# 为进程指定前缀
procname-prefix-spaced = projcetName
# 设置工作进程每处理N个进程就会被回收重启
# max-requests = 500000
# 设置工作进程使用物理内存超过N MB就回收重启
reload-on-rss = 1024
# 设置socket超时时间,默认4秒
# socket-timeout = 10
# 限制http请求体的大小(Bytes)
# limit-post = 4096
# clear environment on exit
vacuum = true
# 不记录request日志,只记录错误日志
# disable-logging = true
# 将日志打印到syslog上
# log-syslog = true
# 后台运行,并输出日志
# daemonize = /usr/locol/projcetName/log/uwsgi.log
# stats = ./uwsgi.status
master = true
pidfile = uwsgi.pid
到uwsgi.ini 文件所在目录下,启动 uWSGI
uwsgi --ini uwsgi.ini
uwsgi -d --ini uwsgi.ini #后台运行
查看进程,是否成功。
ps -aux | grep uwsgi
1.若修改了后端 Django 内容或其它内容,须重启 uWSGI 和 Nginx 服务
可以用kill方法把uwsgi进程杀死
killall -9 uwsgi
2.关闭防火墙
3.由于部署环境下,项目setting.py中DEBUG = False
,后台样式可以收集后放在dist/static文件下