Nginx+uwsgi+Django+Vue在CentOS7上的项目部署流程
程序员文章站
2022-06-25 12:08:27
...
1、Django工程文件
(1)将开发好的Django后端工程文件发送到远程服务器,可以借助工具,也可以使用scp命令
以下使用"mydjango"代表Django工程文件
scp django工程路径 用户@远程服务器IP:拷贝路径
例:
scp /home/admin/project/mydjango aaa@qq.com:/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、部署完成
上一篇: 在VMware上配置Centos7网络
下一篇: Struts2配置和简单实例
推荐阅读
-
eclipse中部署在tomcat上的项目能正常运行,但无法访问tomcat默认首页
-
Hadoop2.7.3在centos7上的单机版安装部署
-
如何让部署在服务器上的项目一直保持运行状态
-
Nginx+uwsgi+Django+Vue在CentOS7上的项目部署流程
-
详解在Redis在Centos7上的安装部署
-
eclipse中部署在tomcat上的项目能正常运行,但无法访问tomcat默认首页
-
php项目在本地服务器部署后全部的资源文件加载不上
-
php项目在本地服务器部署后全部的资源文件加载不上
-
部署在阿里云上的项目收到了阿里云发送的shiro漏洞
-
在linux上,一个Tomcat部署两个有依赖的web项目