
服务器建站那些事!
为什么想玩服务器?
那当然是因为很酷啦!
制作一个为自己和周围人服务的在线工具是一件很有成就感的事。次之就是部署服务器涉及到很多知识点,适合边学边用,如果自己编写前后端那更是一个巨大的工程。
这篇主要还是聊一聊,之后可能会出一期全面的教程
部署服务器需要哪些步骤?
打开服务器
配置环境
把程序放到服务器里
运行程序
完成
哈哈,虽然没有这么简单,但如果是使用Windows Server作为系统,并且使用了大厂的云服务器,那以上的步骤还真没毛病。
选择载体
言归正传,我以我部署这个网站和GPT镜像站为例。
一般会先选择服务器的载体,载体比较常见的是家用闲置电脑、家里购置专用服务器、云服务器、一些托管平台。
你永远不知道你访问的页面后面是哪种服务器,是卡片计算机?是IDC数据中心?或者土豆服务器?
一个载体其实很重要,决定了你的服务器入网的方式。家用电脑的话,网络入网比较麻烦,申请外网地址、配置DDNS、开放端口、配置防火墙、交电费。还有一些潜在问题,系统安装维护、网络带宽、访问体验。当然也有好处,离得近可以直接键盘操作,零距离、配置起来舒服。
在重重困难面前,我摆烂了,我直接选择云服务器,一年一百多,玩玩设备没事,真的用,费这心没意思。
价格的话做活动都还好,2核2G一年也就百来块,部署小团体服务完全可以。
然后就是选择系统
我刚接触这类计算机的时候是从电脑上装Linux开始的,我在一家维护单位实习的时候,我师父让我练习装Linux系统,我就尝试在虚拟机里安装Deepin,一个国产系统,不能说好用,就是说非常难用吧,很多文件的运行方式非常诡异。
但这Linux这类系统很省资源,也就是运行效率很高,很大程度导致了它们难以使用。因为它们和DOS系统一样,没有图形界面照样运行的好好的,而我们小服务器里的系统一般也没有图形界面。(Windows Server你先不要急,你真的很占内存)
所以一般选Linux的较多,选择一般有乌班图、Debian和,Windows Server嘛,和家用电脑一样。(Mac没玩过,勿喷)
配置环境
这里就是八仙过海了,主要是有宝塔这样的以网页为基础给linux或者Windows Server提供操作界面的,例如文件传输、软件安装、防火墙配置、各种服务的配置文件设置、性能监控、网站配置等等非常多的功能;还有开发的环境数据库软件MySQL要装吧,开发各种代码的环境要有吧,反向代理要有吧。
上面这些只是冰山一角,这一步的时间,没有一个系统的概念是非常耗时间的。
云服务器配置
这里因为我选择的是云服务器,所以会多一步配置,实际上这一步如果是家用电脑只是会在不同的地方设置罢了,很多都是需要配置的。
那每个云服务器的供应商都有控制台,可以看到账户里的资源,像是阿里云,还有体验服务器,就是给你开一个临时服务器,让你体验部署服务,还有一些试用。
一般服务器会需要配置防火墙端口开放,类似SSH连接、FTP服务会直接给你写好,但是你自己部署的网页就不一定开放了,所以要手动开启
部署网站
博客类的网站,一般网上有很多,像WordPress这种非常成熟的,有社区维护的Halo,这个网站就是Halo,还有许多使用各种各样框架搭建的网站。一般这些网站部署会提供Docker和一键部署脚本,对Linux用户非常友好,几行代码就能搞定。
当然,一步一坑就是对这个阶段的完美介绍,没运行一行命令就有可能出错,没次出错,就能被耗很久。常用百度、谷歌是个好习惯。
举个例子:比如,为什么Docker在下载库的时候,为啥卡在拉取库的阶段?哦原来是没有设置国内镜像库。为啥我找不到容器的配置文件?哦原来是每个容器都有一个独立的文件夹,配置不在根目录那几个bin、etc里。为啥启动了容器后会一直崩溃,哦原来是端口冲突、创建容器的配置命令不对。
这只是一个自动化容器系统内部的问题,不提网络,不提环境。
所以,小白越简单越好,不要想着骚操作。不过相反的,不做的人,怎么能进步呢哈哈哈。
下面简单看下WordPress的部署
先找官方的信息是个好习惯,能有个初步的概念,过滤一些奇葩和过期的教程。
实际上宝塔面板的软件商店,就可以直接部署。而且可以一键部署LAMP(Linux+Apache+MySQL+PHP)或者LNMP(Linux+Nginx+MySQL+PHP)这种网页运行环境。这是运行网页的必需品,Apache和Nginx是反向代理负责转发网络请求、PHP是网页相关、MySQL是数据库
总结下就是这三点:
环境
数据库
网站软件
到这里,恭喜,你的网站已经可以开始运行啦!
域名与端口
这里已经快要脱离服务器的部分,也就是不必须的、但每个网站都会有。
很多人都能使用网址访问网站,比如www.baidu.com,大都能背出来。
我们访问的实际上就是百度域名背后真实IP的443端口。
有人说为啥不是80端口,这就是HTTPS的问题了,当你没有开启HTTPS时访问的是80端口,而开启后就是443了,这一点后面会单开一章。
所以这里要注意,防火墙的放行规则,在服务器内和云服务器控制台都要配置放行,不然外界会检测不到
为什么要使用域名呢,主要是为了提供一致化的服务,而且比IP好记,可以自定义名字。不论开发者和管理者在后台做什么工作,展示给用户的永远是一个域名。比如说今天百度换了一个机房,服务器都换了,但是我们发现,www.baidu.com这个域名没有换,用户依旧可以无感的使用服务。但IP就不一样了,他会随着电信运营商IPC和机房物理位置的变更而变化。
国内如果要申请域名需要备案,每个云服务器厂商都有代理,可以免费备案个人网页,会要求在页面底部放上一个备案链接,像这样:
这样下来,你的网站就已经和真正的服务器相似了,可以向外提供服务了。
之后一篇会讲到HTTPS和HTTP的关系,并且会说到证书部署的方式。