Nginx+uwsgi+Django+Vue在CentOS7上的项目部署流程

4 篇文章 0 订阅
4 篇文章 0 订阅

1、Django工程文件

(1)将开发好的Django后端工程文件发送到远程服务器,可以借助工具,也可以使用scp命令

以下使用"mydjango"代表Django工程文件

scp django工程路径 用户@远程服务器IP:拷贝路径
例:
scp /home/admin/project/mydjango root@0.0.0.0:/home/admin/project/mydjango

(2)修改Django配置信息

如:setting.py中的DEBUG改为False、使用了MySQL等需要配合当前远程服务器的一些配置信息

(3)使用python manage.py runserver命令测试

友情链接:可能出现的问题及其解决方法

2、Vue工程文件

使用 npm run build 命令进行打包,将dist目录发送到远程服务器

3、安装Nginx

友情链接:详细安装过程、可能出现的问题及其解决方法

4、安装uwsgi

友情链接:详细安装过程、可能出现的问题及其解决方法

5、编辑uwsgi.ini配置文件

manage.py目录下新建一个 .ini 文件,这里命名为uwsgi.ini。列举几个比较重要的,有其他需要另行Google

# 必须有这个[uwsgi],不然会报错
[uwsgi]

# 这个端口很重要,一会配置Nginx会用
socket = 0.0.0.0:8080

# django项目路径
chdir = /home/admin/project/mydjango

# django项目的wsgi文件
module = mydjango.wsgi

# 开启主进程
master = true

# 最大进程数量
processes = 4

#当服务器退出的时候自动删除unix socket文件和pid文件
vacuum = true

# 输出日志,有报错时可查看
daemonize = uwsgi.log

# 项目虚拟环境路径
virtualenv	= /root/.virtualenvs/django2
  • 如何找到虚拟环境的路径?
    在虚拟环境下,使用which python命令,复制到虚拟环境名称即可
    在这里插入图片描述

6、执行uwsgi.ini文件,启动Django项目

建议使用指定文件名的方式启动,得到以下界面

uwsgi --ini uwsgi.ini

在这里插入图片描述

  • 如果配置了daemonize = uwsgi.log日志的话,就会只显示下面一句,其余均在日志中记录
  • 在这里插入图片描述
  • ps查看以下uwsgi进程
    在这里插入图片描述

7、配置Nginx

  • 进入 /etc/nginx 目录
    在这里插入图片描述
    在该目录下的 nginx.conf 配置文件中有一句 include /etc/nginx/conf.d/*.conf;,所以我们可以在 conf.d 目录下单独编辑项目需要的配置信息
  • 进入 conf.d 目录,创建一个 .conf文件,这里命名为 myproject.conf
    编辑以下信息(不要少分号):
server {
	# 监听8080端口,访问项目时,使用服务器IP:此端口
    listen 8000;
    # vue打包的dist路径
    root /home/admin/project/dist;
    index index.html;
    try_files $uri $uri/  /index.html;
    
    # 转发到Django后端的路径
    # 这里需要设置Django的路由规则为:ip:port/api/xxxxxxxx
    # 当然前端vue向后端发送的请求路径也要配合此规则
    # 可以在全局路由,即与wsgi.py同目录下的urls.py中配置
    # 例:path('api/', include('users.urls'))
    location /api {
        include /etc/nginx/uwsgi_params;
        # 在uwsgi.ini文件中配置的socket绑定的端口
        uwsgi_pass 0.0.0.0:8080;
    }
}
  • 编辑完成后保存退出,使用以下命令测试Nginx配置以及重启Nginx服务
# 测试
nginx -t
# 重新载入
nginx -s reload

测试应该出现 successful 提示,如有错误,按提示修改
在这里插入图片描述

8、访问项目

在本地浏览器中输入远程服务器IP和Nginx配置中listen的端口号即可

9、Nginx出现403 Forbidden

在这里插入图片描述

  • 查看Nginx日志
cat /var/log/nginx/error.log

应该就能看到 failed (13: Permission denied) ,权限问题。问题出在Nginx的启动用户和工作用户要保持一致

  • 使用下面的命令查看Nginx的启动用户
ps aux | grep "nginx: worker process" | awk '{print $1}'

在这里插入图片描述

  • 编辑Nginx的配置文件
vim /etc/nginx/nginx.conf

将第5行的user从nginx改为通过命令查到的用户
在这里插入图片描述
在这里插入图片描述

  • 再次访问IP:端口,即可访问项目

10、部署完成

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值