我希望我曾经有过的服务器介绍
当我第一次学习编码时,我不知道服务器是什么、服务器是什么样子的,或者我最终会如何使用它。
在本指南中,我将尽力提供我期望的入门介绍,希望您最终能够更好地理解服务器的真正含义以及如何使用服务器。无论您使用的是 Mac、Linux 还是 Windows 10 系统,这些说明都适用。
那么,什么是服务器?
你可能读过各种关于服务器的技术解释,但我喜欢把它描述成一台始终连接到互联网的计算机。这是因为它通常执行需要互联网连接的任务,例如提供构成网站的文件。本文将探讨的就是这种场景。
当有人使用其网络浏览器请求网站时,会向特定服务器发出请求以获取组成该网站的文件,并且该服务器始终连接到互联网并随时准备提供这些文件。
除了
- 它始终连接到互联网
- 始终开启
- 它已配置为“监听”请求并提供正确的文件
如果您确实愿意,您自己的计算机也可以成为服务器。
实际上,当我们需要服务器时,我们倾向于租用一台或其中的一部分,这些服务器与许多其他服务器一起存储在一个大仓库中。
服务器没有屏幕,因为人们不需要通过图形用户界面与它们交互。所以你通常会看到大量的服务器被高效地集中存放在机架中。
那么如何获取服务器并进行配置呢?
如果您需要一台服务器,现在您倾向于去Amazon Web Services、Google Cloud Platform或Digital Ocean等提供商并为自己“配置”一台服务器。
我们就这么做吧!
大多数平台都为新用户提供免费套餐,或为低使用率客户提供丰厚的补贴。
AWS 允许新用户使用小型服务器一年,但即使您不是第一年,我们现在也可以创建一个服务器并在很短的时间内使用它,而且只需花费几美分。
注册 AWS
如果您之前没有注册过 AWS,请立即创建账户!您需要一张有效的信用卡/借记卡才能注册,但我们不会收取任何费用。
预配实例
AWS 将服务器称为“实例”,因为从技术上讲,您并没有获得自己的服务器,而是租用了云中的“计算空间”,换句话说,虚拟服务器只是单个硬件上的一小块空间。
但实际上,它感觉就像你自己的服务器一样。而且比自己买一台服务器便宜得多。
然后,选择启动实例的选项:
您可以选择多种类型的实例,但免费套餐中只有部分可用。请选择Amazon Linux 2 AMI类型,该实例运行的是 Amazon Linux 操作系统的最新版本。大多数服务器都运行某个版本的 Linux 操作系统。
在下一页上,确保仍然选择了正确的 AMI 类型,然后按“审核并启动”:
当系统询问您是否使用现有密钥对或创建新的密钥对时,请创建一个新的密钥对并下载。
然后,您的实例将需要一些时间进行配置,配置完成后,您将能够转到 EC2 仪表板并查看正在运行的实例列表,除非您之前已经运行了其他实例,否则其中可能只有 1 个实例。
连接到您的实例
我们提到过,实例没有屏幕,那么如何操作它们呢?我们可以从命令行远程访问和操作它们,方法是使用名为 的命令连接到它们ssh
。SSH(安全外壳)是一种用于通过网络远程安全地连接和操作计算机的协议。
当我们使用 SSH 连接到实例时,我们需要证明我们确实拥有控制实例的权限。这一点至关重要,否则任何人都可能连接到我们的服务器并造成破坏,尤其是在服务器通常执行关键业务的敏感任务(例如处理用户数据或付款信息)的情况下。
创建实例时,您将下载一个私钥。此密钥与 AWS 存储的公钥匹配。只有私钥的所有者才能连接到该实例。这称为公钥身份验证,是与远程服务器进行身份验证的标准方法。
首先,也许可以将这个密钥文件从“下载”目录中移到某个地方,以便将来您知道在哪里可以找到它(如果您再次使用它的话)。
然后,我们需要更改文件的权限以使其更安全:
chmod 400 my-first-key-pair.pem
这意味着只有文件的所有者才能读取它。
最后,转到 AWS EC2 仪表板并找到实例的公共 IP:
然后,使用 IP 构建以下命令,确保您提供的是刚刚修改的 .pem 证书文件的正确路径,并将 IP 地址“34.244.187.6”替换为您的实例的 IP 地址:
ssh -i my-first-key-pair.pem ec2-user@34.244.187.6
当询问您是否要继续时,输入“yes”并按回车键。
您现在已连接到您的 EC2 实例!
如果您使用的是 Linux 机器并且尚未ssh
启用该命令,则可能需要先运行以下命令来启用它:
sudo apt update
sudo apt install openssh-server
现在这个命令应该可以工作了:
ssh -i my-first-key-pair.pem ec2-user@34.244.187.6
看看周围!创建一些文件!
您的终端现在就像连接到 EC2 实例的终端一样运行。如果您ls
发现pwd
它不再是您的计算机,请随意创建一些文件,探索文件系统。
由于它是一个全新的实例,因此您的主目录中没有文件,但如果您移动到根目录,您将看到大量标准 Linux 文件cd /
。
让我们的实例服务于网站
如果我们想配置这个实例来为网站提供服务,我们需要做几件事:
- 允许 HTTP 连接,因为浏览器使用 HTTP 协议请求网站,而目前我们的实例仅允许 SSH 连接
- 配置一些服务器软件,通过提供文件来响应 HTTP 请求
- 创建这些文件(或以某种方式将它们放到机器上)
让我们做这三件事......
1. 允许 Web 流量进入您的实例
为了允许 Web 流量,我们需要配置实例的“安全组”设置。点击 EC2 仪表板上“安全组”标题旁边的“启动向导”链接。
在“安全组”页面上,确保您的安全组突出显示,然后选择“入站”选项卡,然后按“编辑”:
添加新的 HTTP 规则并保留提供的默认设置。这将允许来自任何 IP 地址的 HTTP 流量进入实例:
保存此新规则。
2.安装Apache
回到已与实例建立 SSH 会话的终端,运行以下命令安装名为 Apache 的软件。Apache 是一个简单的服务器软件,其默认配置允许它在实例在端口 80 上收到 HTTP 请求(即来自浏览器或其他 Web 客户端的请求)时为单个网站提供静态文件。
我们可以使用yum
包管理器来安装httpd
,奇怪的是,这是 Apache 的包名称。
sudo yum install -y httpd
3.创建一些文件
默认情况下,Apache 将提供在目录中创建的文件/var/www/html/
。
cd
进入该目录并创建一个index.html
文件:
cd /var/www/html
sudo touch index.html
要编辑此文件,我们必须使用命令行编辑器(例如 Vim),因为我们没有图形用户界面,因此没有 VSCode 等!
sudo vi index.html
如果您以前没有使用过 Vim,则需要使用 键i
进入插入模式,使用 Esc 键进入命令模式来切换插入/命令模式。
进入插入模式后,创建 HTML 文件,完成后,切换到命令模式并键入:wq
以保存并退出。
最后一步:启动服务器
我们必须通过运行以下命令启动 Apache 服务器软件:
sudo service httpd start
访问网站
最后,我们应该能够在浏览器中访问我们实例的公共 IP 地址,并且网站应该可以提供服务!
服务器的配置方式有很多种,服务器可以做的远不止服务于静态 Web 应用程序 - 大多数时候,它们运行一个在提供静态文件的同时执行某些逻辑的应用程序,而且通常它们根本不用于服务 Web 应用程序。
但是,我希望这只是对服务器配置的一种方式的有用见解。
断开与实例的连接
要结束 SSH 会话,请ctrl + D
在终端中按下组合键。现在您应该已经回到自己的电脑上了。
终止您的实例
为了避免收费,请不要忘记在完成后终止您的实例!
您可以在 AWS 的 EC2 仪表板上执行此操作。终止会彻底销毁该实例;如果您以后想恢复,可以“停止”该实例,并在将来重新启动。已停止的实例不会产生费用。
文章来源:https://dev.to/harri_etty/the-introduction-to-servers-i-wish-id-had-44jl