Django nginx + uwsgi部署,Django + Vue前后端分离内网linux部署

Django nginx + uwsgi部署,Django + Vue前后端分离内网linux部署

网上写的七七八八的,我这里做一个总结

1.Django项目完成,配置python环境和uwsgi

安装好所有的安装包, 可以使用requirement.txt 批量安装
安装uwsgi环境,有网使用
方法1:

pip install uwsgi

可能报错:报错可以使用conda安装

conda install uwsgi

方法二:
使用压缩包安装:
去镜像源或者pypi下载压缩包。
下载后解压
解压后进入解压目录中

python setup.py install

如果出现报错编译错误,编译python.h错误的话,查看python-dev
安装合适版本的dev,我这里是38的。

yum install python38-devel

不同环境也有可能是yum install python-dev
运行python manage.py runserver 0.0.0.0:8000
本地访问127.0.0.1:8000查看是否可以运行
远程访问ip地址:8000,如果失败的话注意防火墙端口是否关闭
进入django项目目录中
新建uwsgi.ini文件进行编写,将下列注释删除,否则可能运行报错
内容:

[uwsgi]
# Django-related settings
#socket = 你的项目位置/uwsgi.sock
http= :9000    #uwsgi访问端口,设置你自己想要的端口
socket=127.0.0.1:8001 #uwsgi和nginx交互端口
chdir=你的项目位置
static-map=/static/=静态资源位置,一般是项目位置/static
http-timeout=172800   #如果你的前后端时间交互较长,设置一下响应时间,如果没有限制,可以注释掉。
socket-timeout=172800 #同上述,这里我设置了48小时是因为我程序后台会一直跑。
module=项目名.wsgi
uid=root  #root账户管理进程
gid=root
master=true
processes=8
vacuum=true
daemonize=/var/log/web_demo.log   #日志存放位置
thunder-lock=true
enable-threads=true

在项目目录里启动uwsgi

uwsgi --ini uwsgi.ini

查看uwsgi运行状态

ps aux | grep uwsgi

查看9000端口, 8001端口
netstat -nap | grep 9000
如果中间问题出错,请检查配置文件是否出错,用kill -9 kid杀死进程,重启uwsgi监听端口
实在不会就 killall -s INT uwsgi
如果配置好了应该可以在9000界面访问到你的地址

2.安装nginx

有网命令,无网下载安装包

yum install nginx

进入nginx配置界面
一般目录在etc/nginx/下
不同环境版本配置文件不一样,我这里是nginx.conf,含有目录conf.d
配置环境
方法一:直接修改nginx.conf,在下面直接添加代码
方法二:在conf.新建配置自己的文件如demo.conf,加代码内容
代码内容

server{
	listen 8002;#访问端口,配置80的话配置失败会直接进入nginx界面,不同于uwsgi端口
	server_name ip地址或者域名
	access_log /var/log/nginx/access.log main;
	charset utf-8;
	gzip on;
	gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json text/json image/jpeg image/gif image/png application/octet-stream;
	error_page 404         /404.html
	error_page 500 502 503 504  /50x.html;
	location /{
		include uwsgi_params;
		uwsgi_connect_timeout 30;
		uwsgi_pass 0.0.0.0:8081;  #uwsgi和nginx交互端口,和上面uwsgi保持一致
	}
	location /static/{
		expired 30d
		autoindex on;
		add_header Cache-Control private;
		alias 静态资源位置;
	}
}

启动nginx

/etc/init.d/nginx start

查看nginx运行状态

systemctl status nginx.servic

查看nginx配置文件是否是success
nginx -t -c /etc/nginx/nginx.conf
如果nginx端口被占用,启动其他端口或者杀死端口,和uwsgi查看端口命令一样

3.vue 打包

vue build
将访问地址改成后端地址,我这里改成9000端口
打包后的文件dist应该包括
mock
static
index.html

将index.html 放入templates
将static 放入django static中
注意一定要在django中配置index路由,否则可能找不到

from djangoz.views.generic import TemplateView
path('', TemplateView.as_view(template_name='index.html'), name='index'),
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值