我作为一名新手工程师结束了第一年的工作,所以我想写一写关于服务器的内容

问好

晚上好,大家好,早上好。

時間過得真快,從成為工程師至今已經過了一年。雖然沒有太多成長的實感,但我計劃在這個里程碑上每個週末連載關於基礎設施的文章。如果有任何錯誤信息或者錯誤拼寫的地方,請務必指正,非常感謝你的教導。

服务器

这周我会尝试写一下关于服务器的内容。但由于这并不是一次就能完成的领域,所以这次我将限定在非常基础的概述范围内书写。

服务器是什么?

在英文中称为”Server”,意思是”仆役”或者”侍者”。
一般来说,它是指”软件提供一些数据或者服务以满足客户端的请求,或者指执行这一功能的计算机”。如果是一位每天都从事软件开发工作的人,可能会说”是的,是的(当然这是理所当然的)”就结束了,但是对于不熟悉的人可能会想”嗯?(你说的是什么啊(^ω^))”。是的,我之前也是这样。接下来继续。

服务器的类型

服务器可以根据规模分为”物理服务器”和”虚拟服务器”两种类型。”物理服务器”指的是”实际存在的服务器”,而”虚拟服务器”则是指”在一台物理服务器上运行多个操作系统,通过将其视为多个服务器来使其运行”的机制。

亲身体验

好吧,迄今为止我已经写了关于基本服务器概述的内容(不知道这些的工程师们,(^ω^;))。但是我认为只有真正运行服务器才能真正理解,所以让我们使用Docker在CentOS容器内搭建Nginx服务器吧。(虚拟服务器)

环境准备

这次我们假设您已经在本地可以使用docker命令,并在此基础上继续。如果您尚未在本地安装Docker,请使用以下准备步骤。(参考链接:https://docs.docker.com/desktop/)

本次目录结构如下。

$ ls
Dockerfile      server.html

在Dockerfile中,基于CentOS7的Docker镜像安装并启动Nginx进程,并描述了server.html将在访问Nginx时输出的内容。

Dockerfile: 请简述如下内容的中文意思,仅需要一种选项:

Dockerfile

這次使用的 Dockerfile 如下所示。由於目標是執行 Nginx,因此我們暫時不討論內容的細節。(我也想寫一篇關於 Docker 的文章。)

FROM centos:7

RUN yum update -y && \
    yum install -y epel-release && \
    yum upgrade -y && \
    yum install -y nginx

ADD server.html /usr/share/nginx/html/

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

服务器.html

保持简洁。

Hello, Nginx!!

启动服务器

因为在这个阶段,我们已经准备好启动包括Nginx在内的CentOS,所以接下来我们将进一步让Nginx服务器正常运行,并使用curl访问。

$ docker build -t nginx:centos7 .
$ docker run -t -p 80:80 -d nginx:centos7

我认为到此为止,包含Nginx的CentOS Docker容器已经启动了,现在我们来实际确认一下吧。

$ docker ps -a
CONTAINER ID   IMAGE                  COMMAND                   CREATED          STATUS          PORTS                NAMES
d5bf4d46dae7   nginx:centos7          "nginx -g 'daemon of…"    18 minutes ago   Up 18 minutes   0.0.0.0:80->80/tcp   gracious_neumann

由于「Status」已经是“Up”,所以它已成功启动。
现在,我们终于要执行curl命令了。我们将使用之前用docker ps -a确认的PORTS作为参数指定。

$ curl -s 0.0.0.0/server.html
Hello, Nginx!!

好的,我已經成功地設置了Nginx服務器並通過curl訪問它來確認我自己設定的輸出內容。

结束

本次我们简单概述了服务器并尝试启动了服务器。
下次我打算写关于Docker的内容。