• 10.1 网站服务程序

    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服务程序的默认页面