为什么想玩服务器?

那当然是因为很酷啦!

制作一个为自己和周围人服务的在线工具是一件很有成就感的事。次之就是部署服务器涉及到很多知识点,适合边学边用,如果自己编写前后端那更是一个巨大的工程。

这篇主要还是聊一聊,之后可能会出一期全面的教程

部署服务器需要哪些步骤?

  1. 打开服务器

  2. 配置环境

  3. 把程序放到服务器里

  4. 运行程序

  5. 完成

004029C8.png

哈哈,虽然没有这么简单,但如果是使用Windows Server作为系统,并且使用了大厂的云服务器,那以上的步骤还真没毛病。

选择载体

言归正传,我以我部署这个网站和GPT镜像站为例。

一般会先选择服务器的载体,载体比较常见的是家用闲置电脑、家里购置专用服务器、云服务器、一些托管平台。

你永远不知道你访问的页面后面是哪种服务器,是卡片计算机?是IDC数据中心?或者土豆服务器?

怎么搭建一个小型企业服务器机房,做这些都需要什么_【DELL服务器销售中心】

土豆服务器什么梗-鲸吼社区

一个载体其实很重要,决定了你的服务器入网的方式。家用电脑的话,网络入网比较麻烦,申请外网地址、配置DDNS、开放端口、配置防火墙、交电费。还有一些潜在问题,系统安装维护、网络带宽、访问体验。当然也有好处,离得近可以直接键盘操作,零距离、配置起来舒服。

在重重困难面前,我摆烂了,我直接选择云服务器,一年一百多,玩玩设备没事,真的用,费这心没意思。

2023年全球知名云服务提供商排名前十名汇总整理-趣云笔记 (ecscoupon.com)

价格的话做活动都还好,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的部署

https://cn.wordpress.org/https://developer.wordpress.org/advanced-administration/before-install/

先找官方的信息是个好习惯,能有个初步的概念,过滤一些奇葩和过期的教程

实际上宝塔面板的软件商店,就可以直接部署。而且可以一键部署LAMP(Linux+Apache+MySQL+PHP)或者LNMP(Linux+Nginx+MySQL+PHP)这种网页运行环境。这是运行网页的必需品,Apache和Nginx是反向代理负责转发网络请求、PHP是网页相关、MySQL是数据库

https://www.bt.cn/new/index.html

总结下就是这三点:

  1. 环境

  2. 数据库

  3. 网站软件

到这里,恭喜,你的网站已经可以开始运行啦!

域名与端口

这里已经快要脱离服务器的部分,也就是不必须的、但每个网站都会有。

很多人都能使用网址访问网站,比如www.baidu.com,大都能背出来。

我们访问的实际上就是百度域名背后真实IP443端口

有人说为啥不是80端口,这就是HTTPS的问题了,当你没有开启HTTPS时访问的是80端口,而开启后就是443了,这一点后面会单开一章。

所以这里要注意,防火墙的放行规则,在服务器内和云服务器控制台都要配置放行,不然外界会检测不到

为什么要使用域名呢,主要是为了提供一致化的服务,而且比IP好记,可以自定义名字。不论开发者和管理者在后台做什么工作,展示给用户的永远是一个域名。比如说今天百度换了一个机房,服务器都换了,但是我们发现,www.baidu.com这个域名没有换,用户依旧可以无感的使用服务。但IP就不一样了,他会随着电信运营商IPC和机房物理位置的变更而变化。

国内如果要申请域名需要备案,每个云服务器厂商都有代理,可以免费备案个人网页,会要求在页面底部放上一个备案链接,像这样:

这样下来,你的网站就已经和真正的服务器相似了,可以向外提供服务了。

之后一篇会讲到HTTPS和HTTP的关系,并且会说到证书部署的方式。