Skip to content

Commit

Permalink
Update server deployment guide
Browse files Browse the repository at this point in the history
  • Loading branch information
mobeicanyue committed Apr 4, 2024
1 parent 0697bfb commit c17382b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 20 deletions.
45 changes: 25 additions & 20 deletions source/_posts/How-to-Deploy-a-new-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,19 @@ date: 2024-03-01 22:25:20

在开始之前,我们得先了解一些基础的 Web 知识。有了这些知识,我们才能更好地理解服务器的操作及其使用。如果你已经了解了这些知识,可以直接跳到下一节。

### 什么是服务器?
### 0.1 什么是服务器?

在开始使用之前,我们得先搞懂什么是服务器。

**服务器是一种专门为网络服务而设计的专用计算机,其主要功能是为用户提供计算或应用服务。**
**服务器是一种专门为网络服务而设计的专用计算机,其主要功能是为用户提供计算或应用服务。**如网站、数据库、电子邮件、文件存储等等。

它可以提供各种服务,比如网站、数据库、电子邮件、文件存储等等
而服务器分为 `独立服务器``虚拟服务器`,它们是有区别的

本文所说的服务器是指云服务器,也就是我们常说的云主机,它是一种基于云计算技术的虚拟化服务器,属于 IaaS(基础设施即服务)。我们如果要部署一个网站,就需要一个云服务器
- `独立服务器` 是指一台物理服务器只提供给一个用户使用,核数多、性能高、稳定性好。但是 `价格往往相当昂贵`,适合大企业使用,如果我们只是搭建一个小型网站就相当不划算

当然你也可以使用自己的电脑作为服务器,再通过端口映射来让外网访问,但是这样有诸多弊端,也不在本文讨论范围内。
- `虚拟服务器` 是指一台物理服务器上划分出多个虚拟服务器,每个虚拟服务器都有自己的操作系统、磁盘、内存、CPU 等资源,但是它们共享物理服务器的资源。但是 `价格也相对便宜`,适合个人或小型企业使用。

本文所说的服务器就是指 `虚拟服务器`,也就是我们常说的云服务器、云主机,属于 IaaS(基础设施即服务)。我们如果要部署一个网站,就需要一个云服务器。

而云服务器提供商有很多,比如阿里云、腾讯云、华为云、亚马逊云等等。

Expand All @@ -47,25 +49,30 @@ date: 2024-03-01 22:25:20

需要特别注意的是,如果你购买的服务器在中国内地(大陆),必须完成 ICP 备案才可对外提供服务。备案是什么以及如何备案,就不在本文讨论范围内了。

#### 如何选择服务器系统?
当然你也可以使用自己的电脑作为服务器,再通过端口映射来让外网访问,但是这样有诸多弊端,也不在本文讨论范围内。

#### 0.1.1 如何选择服务器系统?

可选的服务器系统,主要有 Windows 和 Linux 两种。
可选的服务器系统,主要有 `Windows``Linux` 两种。

我们一般选择 Linux 作为服务器系统,因为 Linux 有很多优点,比如稳定、安全、开源、免费等等。而在 Linux 中,又有很多发行版,比如 Ubuntu、CentOS(近两年争议较多 不建议选择)、Debian、Fedora 等等
我们一般选择 Linux 作为服务器系统,因为 Linux 有很多优点,比如稳定、安全、开源、免费等等,最重要的是高度可自定义,不会给你塞一些不想要的牛皮癣功能

本文选择 `Debian` 作为演示,它是是最受欢迎的 Linux 发行版之一 Ubuntu 的上游,是一个非常稳定和可靠的操作系统,也通常被认为比 Ubuntu 更轻量级,因为它不包含太多附加的软件。
而在 Linux 中,又有很多发行版,比如 Ubuntu、CentOS(近几年争议较多 不建议选择)、Debian、Fedora 等等。本文选择 **`Debian`** 作为演示,它是是最受欢迎的 Linux 发行版之一 Ubuntu 的上游,是一个非常稳定和可靠的操作系统,也通常被认为比 Ubuntu 更轻量级,因为它不包含太多附加的软件。

### 什么是域名及 DNS?
### 0.2 什么是域名及 DNS?

购买了一台服务器之后,服务器提供商会给我们一个 IP 地址如 `8.8.8.8`,我们可以通过这个 IP 地址来访问我们的服务器。
但是 IP 地址是一串数字,不方便记忆,并且后期如果更换服务器,IP 地址也会随之变化,这就会导致我们的网站无法访问。所以我们需要一个域名替代 IP 地址来访问我们的服务器。
购买了一台服务器之后,服务器供应商 会提供给我们服务器的 IP 地址如 `8.8.8.8`,我们可以通过这个 IP 地址来访问我们的服务器。

域名就是我们常说的网址,比如 `www.qq.com``www.baidu.com``www.google.com` 等等。
但是 IP 地址是一串数字,不方便记忆,并且后期如果更换服务器,IP 地址也会随之变化,这就会导致我们的网站无法访问。所以我们需要一个域名替代 IP 地址来访问我们的服务器,让用户更方便地访问我们的网站。

域名就是我们常说的网址,比如 `qq.com``baidu.com``google.com` 等等。

> 域名是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。域名可以说是一个 IP 地址的代称,目的是为了便于记忆后者。—— wikipedia
而 DNS(Domain Name System)是一个分布式数据库,用于存储域名和 IP 地址之间的映射关系。当我们在浏览器中输入一个域名时,浏览器会向 DNS 服务器查询域名对应的 IP 地址,然后再通过这个 IP 地址来访问服务器。

![DNS 查询过程](dns-lookup.webp)

**将我们的域名解析到服务器的 IP 地址,就可以通过域名来访问我们的服务器了。**域名注册商一般都会提供 DNS 服务,我们可以在域名注册商的控制台中进行域名解析。

![域名解析](resolve.webp)
Expand All @@ -79,7 +86,7 @@ date: 2024-03-01 22:25:20

### 1.1 使用 SSH 连接服务器

> SSH(Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。
> SSH(Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。Win10/11 和 Linux 发行版,应该都有预装 openssh,如果没有可以搜一下安装教程
我们可以使用 SSH 客户端连接服务器,然后在服务器上执行命令。打开系统的命令行终端,输入以下命令:

Expand All @@ -97,14 +104,12 @@ Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'x.x.x.x' (ED25519) to the list of known hosts.
[email protected]'s password:
```
这段输出的意思是,无法验证服务器的真实性,是否继续连接,输入 `yes` 然后 **输入服务器的密码** 即可连接到服务器
**这段真实性验证只会出现一次,以后再连接服务器就不会再出现了。**
这段输出的意思是,无法验证服务器的真实性,是否继续连接。
输入 `yes` 然后 `输入服务器的密码` 即可连接到服务器。**这段真实性验证只会出现一次,以后再连接服务器就不会再出现了。**

需要注意的是,**输入 SSH 密码时,屏幕上不会显示密码**,不用担心,将服务器的密码正确粘贴后回车即可。

现在你已经连接到服务器了,可以在服务器上执行命令了。

如果连接过程出现报错,请按照报错信息进行排查。
现在你已经连接到服务器了,可以在服务器上执行命令了。如果连接过程出现报错,请按照报错信息进行排查。

## 2. 设置服务器时区

Expand Down Expand Up @@ -385,7 +390,7 @@ sudo ufw enable

## 6. 禁用 ping

如果你不希望别人通过 ping 来探测你的服务器,可以禁用 ping
如果你不希望别人通过 ping 来探测你的服务器,可以禁用 ping。实测禁用 ping 以后,服务器就基本没有遭受 SSH 暴力破解的尝试了。

`/etc/sysctl.conf` 文件中添加以下内容:
```bash
Expand Down
Binary file not shown.

0 comments on commit c17382b

Please sign in to comment.