Django部署
1. 域名购买
国内推荐阿里云域名
优势:阿里云购买可以在一个平台搞定域名、主机等各种服务,适合长期在国内并把服务架设到国内的个人。 劣势:所有域名网站都需要备案,备案比较麻烦,且周期大概在15天到一个月。但是比国外买域名在国内备案稍微简单一些。
国外推荐godaddy
链接显示的是新加坡主站,也可以选择其他国际站点。
优势:在国外用比较方便,结合国外的服务器,不需要备案可以直接上线,操作起来更方便,可以随时购买随时使用。 劣势:最好有信用卡,支付起来会比较方便。如果想在国内使用,备案会比较复杂。
2. 服务器购买
国内推荐: 阿里云服务器
可以作为第一选择
注册登陆后,进入控制台,在ecs中购买
如果只使用django和mysql的话,直接使用1v1G的服务器足够使用。带宽选择1M的限额带宽。足够平时的小型网站使用



AWS:
如果买国外的域名可以直接使用AWS进行部署,这样就都不需要国内的备案。建议在国外长待的可以使用这种方式。如果主要访问为国内用户的话,AWS会出现国内访问较慢,以及时常的国内访问抽风的情况。
AWS的服务器的优势是使用最小配置,需要绑定信用卡,绑定信用卡首年免费。
Heroku:
heroku采用容器模型进行配置,是国外现在非常流行的方式。
域名备案
以下以阿里云模式作为介绍
在国内的所有网站都需要做域名备案,在阿里鱼的备案中心可以直接做备案。

我们可以使用个人性质进行备案。需要使用身份证进行备案。

备案后需要上传个人手持身份证照片和备案背景墙照片。
服务器配置
整体配置架构

在服务器端部署和安装涉及到Nginx、uWSGI、python、django、mysql、Git等环境。
登陆服务器
登陆阿里云控制台可以看到我们的ecs服务器。也可以看到公网 

使用ssh访问
python的安装
Ubuntu默认安装了python2.7和python3.6,可以在命令控制台使用python测试相应的版本。 
mysql的安装
后台使用mysql。所以我们需要安装mysql
安装前执行apt-get update来更新服务器包配置
安装 mysql 服务
mysql的默认安装是不带密码的,所以可以直接登陆进去,这时我们需要给默认的root用户带上密码,减少安全隐患和方便后续登陆。
设置root账号的密码:
直接在控制台输入mysql进入mysql 管理控制台
修改了密码之后,登陆方式需要修改成
默认的mysql为了安全起见是不配置远程登陆的,但是我们在开发等环境时往往需要使用远程登陆,所以我们可以配置mysql的远程连接。
最后使用navicat 测试登陆mysql

Git的安装和配置
安装virtualenv
最后在数据库中就可以看到这些文件了

最后可以使用python manage.py runserver 来启动测试
生成static文件
在settings.py中添加配置 STATIC_ROOT = 'static/'
再执行python3 manage.py collectstatic 来生成静态文件
配置nginx
配置uwsgi 创建uwsgi_youyulab.ini文件
启动uwsgi
可以通过日志查看启动日志信息
设置nginx配置文件:
vi /etc/nginx/conf.d/youyulab.conf
这些生成后配置域名解析




完成后等待配置完毕,访问即可。
直接访问会出现如下问题,是由于没有加入到allowed_hosts中的原因。 
修改如下
修改django的 settings.py文件
重启uwsgi即可

Last updated
Was this helpful?