前言

事先假设已经弄好了整个网站所需要的data(如html),那现在要做的就是该如何将网页部署到服务器上,让网站可以24hr无间断运行。

可参照:如何部署

 

概念

在部署之前,先了解一些基本概念:

一般而言,最普遍的方式都是使用LAMP/LNMP的方式来部署。

 

LAMP:

  • 指Linux(主机系统)、Apache(这才是Web server!)、MySQL(数据库)、Php/pearl/Python(后端语言)

LNMP:

  • 其他都一样,N指Nginx(另一个Web server)

 

Apache VS Nginx:

前者:更稳定,功能强大(模块多,更庞大)

后者:更轻量级,是一个高性能的HTTP和反向代理服务器(相对于正向代理:如vpn),同时也是一个IMAP/POP3/SMTP 代理服务器。其特点是CPU占有内存少,易于开发,部署方便。速度快

参考:

Nginx 和 Apache 区别最全详解

终于有人把正向代理和反向代理解释的明明白白了!


服务器(更多指系统),一般而言有:

  • windows端: IIS
  • Linux端:Apache、Nginx、Tomcat、、

正常而言,一般都选用Linux,因为开源,更安全稳定!

 

而实际上使用Linux,并不是说叫我们在本地下载Linux系统,而是在云伺服器上下载(就是云伺服器要运行的系统是Linux!);说到伺服器(ECS),事实上可以简单理解为一个电脑主机

而这个主机可以是:

  • 物理主机:真实存在的硬件,昂贵。(但我们的电脑也可以成为之=>一般用于测试)
  • 虚拟主机:就是云伺服器 (ECS)(better)or VPS 之类。云提供商:国内:阿里云、腾讯云、华为云;国外:谷歌、亚马逊、微软。。。
  • 正常而言:选用云伺服器!

因为伺服器是一个主机,所以,所谓部署网站到服务器,不过就是将本地电脑主机已成功运行的项目,转移到另一个云上的主机(有同样的运行环境)

那么具体该如何实施呢?

 

如何部署

前言:

先将本地项目整个上传到github(建议private,因为包括settings内的私密配置;如果public的化,就添加.ignore文件!忽略掉敏感文件!)

  • 下载Git
  • 先在Github创建一个对应的repository,随后在本地新建一个文件夹,将github文件git clone到此本地新建文件夹
  • then将本地项目文件放到这个clone后的文件夹
  • 通过git status  
  • git add .  
  • git commit - m "初始化项目v1"
  • git push ;

等命令来完成上传!(目的是保留版本!) 

参考:【Django2.0教程】35.部署准备(一):Git

 

一、配置云伺服器

可在阿里云或其他云服务提供商那购置服务器

以阿里云为例:

  • 点击创建实例,随后大致:选择Linux ubantu 或Centos系统(使用宝塔面板的话推荐Centos;因为才可下载python项目管理器!!centos 7好像更多人支持。)
  • 按量付费
  • 1CPU1GiB (目前使用的是高效系统云盘:40G(读写速度会比SSD的慢, 所以看看如何))

记住:创建好实例后,要立刻“重置实例密码” 。最好要很复杂!因为一旦别人掌握了服务器root用户的密码,等于掌握了整个服务器的生杀大权!


随后,便是配置“安全组”。即允许服务器开放的端口Port,一般而言:

  • 80:http
  • 443:https
  • 22:ssh
  • 3306:mysql

要开放相对应的port,才能使用对应的服务,否则会出错!

 

二、设置网站域名domain

可去Freenom申请free域名,随后更改nameserver为custom自定义的

--break line--


这两是dns解析服务器的地址,来源于阿里云绑定“域名”>“解析域名”,意思就是使用阿里云的dns服务器来解析,不是用freenom的!随后,回到阿里云的主控台,进行域名绑定(绑公网ip),添加两条主机记录值:


三、下载Finalshell(用于ssh连接服务器)和下载宝塔面板

通过ssh连接服务器后,上网搜宝塔面板,点击下载Linux版本(出现下载命令行),将对应的伺服器Linux系统版本命令,copy到Finalshell中,为伺服器下载安装。

随后进入宝塔面板页面,不使用推荐安装!之后,在软件商店,下载mysql,Nginx。

参考:使用宝塔快速部署Django项目

  • 将项目文件上传到www/wwwroot目录下
  • 在同目录下创建虚拟环境(看“再敲一行代码”的,他放home,我们放上面目录!)

 

四、下载Nginx, 布置Uwsgi等

如果是centos,则可参考:使用宝塔快速部署Django项目

如果是ubanto,则可参考Nginx+uwsgi部署:【Django2.0教程】39.用Nginx+uWSGI部署

照着敲就对了!

 

  • Nginx才是真正的web server,处理静态文件(直接写在页面的数据,不跟后台交互的数据),如样式css;
  • Uwsgi:web server gateway inteface(web服务器网关接口),处理动态数据(跟后台交互的数据);不直接跟程序拿数据(django程序),而是通过web服务器软件nginx来交互,再通过wsgi通信

 

五、部署后的一些配置清单

参考:【Django2.0教程】40.部署配置清单

 

 


 

延伸阅读
  1. 上一篇: 网站部署 | 如何申请SSL证书和部署到Nginx服务器上(https认证)
  2. 下一篇: 没啦~~

发表评论

您尚未登录,登录后方可评论~~
登陆 or 注册

评论列表

暂无评论哦~~