我们的博客虽然还有很多不完善的地方,但是没关系,越早把它部署到互联网上,才能越早发现线上特有的问题。现在也提倡渐进式开发,让产品在迭代中快速成长。
部署考验的不是你的 Django 编程水平,而是你对 Linux 的操作能力,以及对网络通信的理解。多说无益,直接开干!
配置服务器
要架设网站,首先你要有一台连接到互联网的服务器。国内比较出名的云服务器属阿里云、腾讯云、百度云,三家各有优劣,大家自行了解比较,并选择自己适合的购买。
利益相关:博主自己用的是阿里云,所以教程会以阿里云ECS作为例子讲解。新用户通过推广链接注册有折扣和现金券(目前是20元);学生有优惠服务器每月9.5元,性能还不错,很划算。如果你想用其他云服务器,操作流程也差不多,不必担心。
首先进入阿里云ECS的购买页面:
图片字很小,看不清楚的同学将就一下放大看吧。
挑重点说一下:
- 实例从入门级里选一款便宜的,以后流量高了再升级也不迟(土豪请无视这条)。
- 镜像选择 Ubuntu 16.04 64位。其他 Linux 版本也是可以的。
- 系统盘先选个 20G,够你用一阵了。数据盘暂时用不上,不用勾选。
点击下一步,来到网络和安全组页面:
这页默认就行了,公网带宽选最低的 1M ,初期够用了。
点击下一步,到系统配置页面:
为了后面远程连接服务器更简单,这里勾选自定义密码,也就是输入用户/密码的认证方式了。实际上秘钥对的认证方式更安全些,以后摸熟了再改回来吧。
点击下一步,到分组设置页面。这个页面全部默认设置就好了。点击下一步,确认订单无误后,就可以付款啦。
付款成功后,通过控制台就可以看到已购买的云服务器了:
这里有时候会有黄字提醒你服务器的网络端口没开,点击黄字链接去开通一下:
把 22(远程连接端口)、443(HTTPS端口)、80(HTTP端口)都打开,3389端口顺便也开了。
至此服务器的购买、配置就完成啦。稍等几分钟后等待初始化完成,就可以得到服务器的公网 IP 地址,博主的是 118.31.35.48
,后面会用到。
接下来就是正式的部署。
正式部署
开发时我们用的是 Django 自带的开发服务器,但那个性能太差了,不可能用到线上环境。所以线上部署时,我们不仅要安装 Django
,还要安装 Nginx
和 Gunicorn
,这三兄弟的工作流程如下:
- 客户端发来 http 请求,Nginx 作为直接对外的服务器接口,对 http 请求进行分析
- 如果是静态资源请求,则由Nginx自己处理(效率极高)
- 如果是动态资源请求,则把它转发给 Gunicorn
- Gunicorn 对请求进行预处理后,转发给 Django,最终完成资源的返回
如果用餐馆来做比喻的话,Nginx 就是迎宾小姐,客人如果点了酒水,迎宾小姐自己就帮忙拿了;而 Gunicorn 是传菜员,Django 是厨师,他两一起满足客人对现炒美食的需求。
远程连接
部署的第一步就是想办法连接到云服务器上去,否则一切都免谈。鉴于项目是在 Windows 环境开发的,推荐用 XShell 来作为远程连接的工具,非常的好用。XShell 有学校及家庭版本,填一下姓名和邮箱就可以免费使用了。千万别嫌麻烦去下载来路不明的“绿色版”、“纯净版”,万一有木马你哭都哭不出来了。
XShell 怎么使用就不赘述了,以读者的聪明才智,稍微查阅一下就明白了。
使用相当简单,基本就是把主机 IP、端口号(22)以及登录验证填好就能连接了。
连接成功后,就能在 XShell 窗口中看到阿里云的欢迎字样了:
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-151-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Welcome to Alibaba Cloud Elastic Compute Service !
root@dusaiphoto:~$