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-2 Apache软件基金会著名的Logo
总结来说,Nginx服务程序作为后起之秀,已经通过自身的优势与努力赢得了大批站长的信赖。本书配套的在线学习站点https://www.linuxprobe.com就是基于Nginx服务程序部署的,不得不说Nginx也真的很棒!
但是,Apache程序作为老牌的Web服务程序,一方面在Web服务器软件市场具有相当高的占有率,另一方面Apache也是RHEL 7系统中默认的Web服务程序,而且还是RHCSA和RHCE认证考试的必考内容,因此无论从实际应用角度还是从应对红帽认证考试的角度,我们都有必要好好学习Apache服务程序的部署,并深入挖掘其可用的丰富功能。
第1步:把光盘设备中的系统镜像挂载到/media/cdrom目录。
- [root@linuxprobe ~]# mkdir -p /media/cdrom
- [root@linuxprobe ~]# mount /dev/cdrom /media/cdrom
- mount: /dev/sr0 is write-protected, mounting read-only
第2步:使用Vim文本编辑器创建Yum仓库的配置文件,下述命令中具体参数的含义可参考4.1.4小节。
- [root@linuxprobe ~]# vim /etc/yum.repos.d/rhel7.repo
- [rhel7]
- name=rhel7
- baseurl=file:///media/cdrom
- enabled=1
- gpgcheck=0
第3步:动手安装Apache服务程序。注意,使用yum命令进行安装时,跟在命令后面的Apache服务的软件包名称为httpd。如果直接执行yum install apache命令,则系统会报错。
- [root@linuxprobe ~]# yum install httpd
- Loaded plugins: langpacks, product-id, subscription-manager
- ………………省略部分输出信息………………
- Dependencies Resolved
- ================================================================================
- Package Arch Version Repository Size
- ================================================================================
- Installing:
- httpd x86_64 2.4.6-17.el7 rhel 1.2 M
- Installing for dependencies:
- apr x86_64 1.4.8-3.el7 rhel 103 k
- apr-util x86_64 1.5.2-6.el7 rhel 92 k
- httpd-tools x86_64 2.4.6-17.el7 rhel 77 k
- mailcap noarch 2.1.41-2.el7 rhel 31 k
- Transaction Summary
- ================================================================================
- Install 1 Package (+4 Dependent packages)
- Total download size: 1.5 M
- Installed size: 4.3 M
- Is this ok [y/d/N]: y
- Downloading packages:
- --------------------------------------------------------------------------------
- ………………省略部分输出信息………………
- Complete!
第4步:启用httpd服务程序并将其加入到开机启动项中,使其能够随系统开机而运行,从而持续为用户提供Web服务:
- [root@linuxprobe ~]# systemctl start httpd
- [root@linuxprobe ~]# systemctl enable httpd
- 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所示。
- [root@linuxprobe ~]# firefox
图10-3 httpd服务程序的默认页面