| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> centos7部署Django3.1,nginx+uwsgi -> 正文阅读 |
|
[系统运维]centos7部署Django3.1,nginx+uwsgi |
本文演示将两个django项目部署到同一服务器的不同端口上首先需要配置基础的centos7的环境,需要安装的有:nginx,uwsgi,anaconda(python=3.7) 正式环境中部署方式 正式环境中部署为nginx+uwsgi来部署django项目 添加nginx存储库
安装nginx
运行nginx,Nginx不会自行启动。要运行Nginx
nginx的运行命令:
系统启动时启用Nginx
如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS通信:
理论上安装好nginx打开后,访问你的服务器ip地址,就可以看到nginx的欢迎页面了。 新建站点文件夹在根目录下新建www文件夹用于存放我们的Django站点,这里我们要分别部署两个Django项目到服务器的不同端口,两个项目分别放在django_site1和django_site2文件夹。 注意!最好不要放在root目录下,这样会造成部署完后访问静态文件403,大概是因为nginx不能直接反问root用户里面的静态文件。如果你放在了root下面,解决方案是把总的vim /etc/nginx/nginx.conf? 把头部的user改成root; 在站点文件夹下新建三个文件夹,conf文件夹用于存放nginx.conf和uwsgi.ini配置文件;logs是日志文件,用于存放nginx的启动成功和失败文件,以及uwsgi的运行日志文件;src是项目文件,该目录下上传的是目录代码。
上传项目源代码这里可以用xshell或者ftp等工具,把django项目打包上传到对应站点的src目录下。这里我将zhirong_v3项目上传到/www/django_site1/src,将django_tem项目上传到/www/django_site2/src 修改django项目里面setting?配置setting.py文件,这里也可以先保留着DEBUG=False,等配置好虚拟环境之后,python manage.py runserver 看一下有没有报错,或者少了什么包之类的;在配置好nginx和uwsig之后,通过域名访问测试没问题了再配置DEBUG = False。 DEBUG = False ALLOWED_HOSTS = ['*'] 静态路由配置如下,注意STATIC_ROOT是当你设置DEBUG = False的时候,nginx找静态文件的路径。 在django_tem项目中,setting.py文件的STATIC_ROOT=os.path.join(BASE_DIR, 'static_new'),注意这里会和下面的nginx.conf配置文件相对应。 ? 新建虚拟环境这里选用python3.7和django3.1,并安装你需要的依赖,如mysqlclient。我的两个站点都是django的环境,所以下面都会用这同一个环境。
建好虚拟环境之后,我们进入到虚拟环境,然后分别到两个项目下,运行python manage.py collectstatic这条命令会把你django项目所有需要用的静态文件下载到你settings.py中配置的STATIC_ROOT目录,便于nginx访问。
这里别忘了做一下数据库的迁移
?注意:如果你用的是mysql数据库,需要在服务器上安装mysql,并且在settings.py文件中配置好对应的数据库配置。centos7安装mysql也是一堆坑,便不再这篇文章中详谈,推荐使用docker安装mysql。 然后我们试一下python manage.py runserver启动项目,看看有没有报错,有报错就解决,没报错就继续。 配置站点路径conf下的nginx.conf首先配置django_site1中的zhirong_v3项目的nginx.conf,这里让nginx监听80端口(公网访问的时候需要加的端口号),然后和uwsgi.ini通信的端口号设置为8890。配置静态资源路径到/www/django_site1/src/zhirong_v3/static_online/
然后配置django_site2中的django_tem项目的nginx.conf,这里让nginx监听8809端口(公网访问的时候需要加的端口号),然后和uwsgi.ini通信的端口号设置为8891。配置静态资源路径到/www/django_site2/src/django_tem/static_new/
修改总的nginx的配置文件,让总的nginx文件包含我们自定义的项目的nginx.conf文件, 总的nginx配置文件在:/etc/nginx/nginx.conf中 ?配置uwsgi.conf?
?
启动uwsgi并重启nginx
开放端口?记得开放8809端口,然后重启一下防火墙
OK,到此为止,不出意外,我们的两个网站都部署到了服务器上,分别在80端口和8809端口。 ps:如果要更新服务器的代码,需要重启uwsgi.ini后期我们代码更新的话,需要先kill掉已有的uwsgi,然后重启
重启方式和上文提到的一样。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 9:54:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |