10.1 网站服务程序

1970年,作为互联网前身的ARPANET(阿帕网)已初具雏形,并开始向非军用部门开放,许多大学和商业部门开始接入。虽然彼时阿帕网的规模(只有4台主机联网运行)还不如现在的局域网成熟,但是它依然为网络技术的进步打下了扎实的基础。

想必我们大多数人都是通过访问网站而开始接触互联网的吧。我们平时访问的网站服务就是Web网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。如图10-1所示,Web网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的Web服务器会通过HTTP(超文本传输协议)或HTTPS(安全超文本传输协议)把请求的内容传送给用户。

目前能够提供Web网络服务的程序有IIS、Nginx和Apache等。其中,IIS(Internet Information Services,互联网信息服务)是Windows系统中默认的Web服务程序,这是一款图形化的网站管理工具,不仅可以提供Web网站服务,还可以提供FTP、NMTP、SMTP等服务。但是,IIS只能在Windows系统中使用,而我们这本书的名字是《Linux就该这么学》,所以它也就不在我们的学习范围之内了。

页面请求过程

图10-1 主机与Web服务器之间的通信

2004年10月4日,为俄罗斯知名门户站点而开发的Web服务程序Nginx横空出世。Nginx程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,但Nginx最被认可的还当是系统资源消耗低且并发能力强,因此得到了国内诸如新浪、网易、腾讯等门户站的青睐。本书将在第20章讲解Nginx服务程序。

Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。图10-2所示为Apache服务基金会的著名Logo,它的名字取自美国印第安人的土著语,寓意着拥有高超的作战策略和无穷的耐性。Apache服务程序可以运行在Linux系统、UNIX系统甚至是Windows系统中,支持基于IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全Socket层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。

Apache程序是在RHEL 5、6、7系统的默认Web服务程序,其相关知识点一直也是RHCSA和RHCE认证考试的重点内容。

10.1 网站服务程序 - 图2

图10-2 Apache软件基金会著名的Logo

总结来说,Nginx服务程序作为后起之秀,已经通过自身的优势与努力赢得了大批站长的信赖。本书配套的在线学习站点https://www.linuxprobe.com就是基于Nginx服务程序部署的,不得不说Nginx也真的很棒!

但是,Apache程序作为老牌的Web服务程序,一方面在Web服务器软件市场具有相当高的占有率,另一方面Apache也是RHEL 7系统中默认的Web服务程序,而且还是RHCSA和RHCE认证考试的必考内容,因此无论从实际应用角度还是从应对红帽认证考试的角度,我们都有必要好好学习Apache服务程序的部署,并深入挖掘其可用的丰富功能。

第1步:把光盘设备中的系统镜像挂载到/media/cdrom目录。

  1. [root@linuxprobe ~]# mkdir -p /media/cdrom
  2. [root@linuxprobe ~]# mount /dev/cdrom /media/cdrom
  3. mount: /dev/sr0 is write-protected, mounting read-only

第2步:使用Vim文本编辑器创建Yum仓库的配置文件,下述命令中具体参数的含义可参考4.1.4小节

  1. [root@linuxprobe ~]# vim /etc/yum.repos.d/rhel7.repo
  2. [rhel7]
  3. name=rhel7
  4. baseurl=file:///media/cdrom
  5. enabled=1
  6. gpgcheck=0

第3步:动手安装Apache服务程序。注意,使用yum命令进行安装时,跟在命令后面的Apache服务的软件包名称为httpd。如果直接执行yum install apache命令,则系统会报错。

  1. [root@linuxprobe ~]# yum install httpd
  2. Loaded plugins: langpacks, product-id, subscription-manager
  3. ………………省略部分输出信息………………
  4. Dependencies Resolved
  5. ================================================================================
  6. Package Arch Version Repository Size
  7. ================================================================================
  8. Installing:
  9. httpd x86_64 2.4.6-17.el7 rhel 1.2 M
  10. Installing for dependencies:
  11. apr x86_64 1.4.8-3.el7 rhel 103 k
  12. apr-util x86_64 1.5.2-6.el7 rhel 92 k
  13. httpd-tools x86_64 2.4.6-17.el7 rhel 77 k
  14. mailcap noarch 2.1.41-2.el7 rhel 31 k
  15. Transaction Summary
  16. ================================================================================
  17. Install 1 Package (+4 Dependent packages)
  18. Total download size: 1.5 M
  19. Installed size: 4.3 M
  20. Is this ok [y/d/N]: y
  21. Downloading packages:
  22. --------------------------------------------------------------------------------
  23. ………………省略部分输出信息………………
  24. Complete!

第4步:启用httpd服务程序并将其加入到开机启动项中,使其能够随系统开机而运行,从而持续为用户提供Web服务:

  1. [root@linuxprobe ~]# systemctl start httpd
  2. [root@linuxprobe ~]# systemctl enable httpd
  3. ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

大家在浏览器(这里以Firefox浏览器为例)的地址栏中输入http://127.0.0.1并按回车键,就可以看到用于提供Web服务的httpd服务程序的默认页面了,如图10-3所示。

  1. [root@linuxprobe ~]# firefox

Apache默认页面

图10-3 httpd服务程序的默认页面