什么是 WEB 服务器
HTTP在日常生活中随处可见,无论是使用各种设备联网,还是看直播、看短视频、听音乐、玩游戏,总会有HTTP在默默为你服务。据NetCraft公司统计,目前全球至少有16亿个网站、两亿多个独立域名,而这个庞大网络世界的底层运转机制就是HTTP。
-
20世纪60年代,美国国防部高级研究计划署(Advanced Research Project Agency,ARPA)建立了ARPA网,它有4个分布在各地的节点,被认为是如今互联网的“始祖”。
-
20世纪70年代,基于对ARPA网的实践和思考,研究人员发明了著名的TCP/IP。
-
1989年,任职于欧洲核子研究中心(European Organization for Nuclear Research,CERN)的蒂姆·伯纳斯·李(Tim Berners-Lee)发表了一篇论文,提出了在互联网上构建超链接文档系统的构想,这篇论文中确立了以下3项关键技术。
浏览器是HTTP里的请求方,那么在协议另一端的应答方(响应方)就是Web服务器,即Web Server。当谈到Web服务器时,有两个层面的含义,一个是硬件,另一个是软件。

目前市面上主流的Web服务器软件有两种,分别是Apache和Nginx,两者合计占据了近90%的市场份额。

- Apache是老牌的服务器,功能相当完善,相关的资料很多,学习门槛低,是许多创业者建站的首选。

- Nginx是Web服务器的“后起之秀”,自2004年推出后就不断抢占Apache的市场份额。其特点是高性能、高稳定性,且易于扩展,在高流量的网站里更是不二之选;在2019年Top Million网站中更是超过了Apache,拥有超过50%的用户。
Apache Web Server 简介
-
Web服务器是一个用HTTP进行交流的守护进程,HTTP是一个基于文本的协议,用于通过网络连接来发送和接收对象。
-
HTTP通过网络以明文形式发送数据,默认情况下使用80/tcp端口(也可以使用其他端口)。HTTP还有一个经过SSL/TLS加密的版本,即HTTPS,默认情况下使用端口443/tcp。
-
Apache官网提供了相关文档手册,官方手册是配置Apache HTTPD时的重要参考资源。Apache Web网站架构如图所示。

Nginx Web Server 简介
-
Nginx是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存器。由伊戈尔·赛索耶夫(Igor Sysoev)创建并于2004年首次公开发布,2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5 Networks公司以6.7亿美元收购。
-
Nginx是免费的开源软件,根据类BSD许可证的条款发布。
-
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、Lighttpd,具有占内存少、稳定性高等优势。与旧版本的Apache不同,Nginx不采用每个客户机一个线程的设计模型,而是充分使用异步逻辑,从而削减了上下文调度开销,所以并发服务能力更强。
安装 Apache Web Server 实验
实验目的
在 CentOS 系统上搭建并配置 Apache Web Server服务器,实现通过其他电脑访问 web 服务页面。
实验环境
一台安装了 CentOS 系统的虚拟机或物理机。
实验步骤
0. 环境准备
# 检查自己的虚拟机是否可以访问公网
ping baidu.com
# 切换管理员账号
su root # 输入密码
#切换虚拟机的软件源地址,使用腾讯的centos 软件源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tencent.com/repo/centos7_base.repo
# 如果以上命令都不行,请使用下面这个:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

1. 安装 Apache Web Server
# 安装httpd
yum install httpd -y

2. 检查 httpd 版本, 启动 httpd 服务
# 检查 httpd 版本
httpd -v
# 查看服务状态(初始为未启动)
systemctl status httpd

3. 配置防火墙规则
开放 FTP 服务所需的端口(20、21)。
# 永久开放 HTTP 服务的 80 端口,并重新加载防火墙规则
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
# 查看已开放端口
firewall-cmd --list-ports

4. 配置 Apache 服务
编辑 /etc/httpd/conf/httpd.conf文件。
vim /etc/httpd/conf/httpd.conf
确保以下配置项:
# 站点目录,,默认是/var/www/html
DocumentRoot "/var/www/html"
# 错误日志存放位置
ErrorLog "var/log/httpd/error_log"
# 访问日志存放位置
CustomLog "var/log/httpd/access_log"
在默认站点目录下创建测试页面 index.html
echo "<h1>Welcome to Apache HTTPD ,我是计网班 XXXXXXX </h1>" > /var/www/html/index.html
保存并重启 httpd 服务。
# 重启 httpd 服务
systemctl restart httpd
# 查看httpd 服务
systemctl status httpd

5. 测试 httpd 服务
在宿主机浏览器中输入虚拟机 IP 地址,若看到 “Welcome to Apache HTTPD on CentOS 7” 页面,说明服务部署成功且防火墙配置正确。

