文章目录
二十、Apache服务
实验环境
- 主机A 的IP192.168.0.109 装Apache服务
- 主机B 的IP 192.168.0.111 客户机
20.1 Apache的基本介绍
Web服务器:是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用 HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。目前最主流的三个Web服务器是Apache、 Nginx 、IIS。
Apache 是使用最广泛的 Web 服务器软件。Apache 是由 Apache Software Foundation 开发和维护的,它是一个免费提供的开源软件。它占全球所有网络服务器的 67%。它快速,可靠,安全。它可以通过使用扩展和模块进行高度定制,以满足许多不同环境的需求。大多数 WordPress 托管服务提供商使用 Apache 作为其 Web 服务器软件。但是,WordPress 也可以在其他 Web 服务器软件上运行。
Apache Web Server 旨在创建能够托管一个或多个基于 HTTP 的网站的 Web 服务器。值得注意的功能包括支持多种编程语言,服务器端脚本,身份验证机制和数据库支持。可以通过操纵代码库或添加多个扩展/附加组件来增强 Apache Web Server。
HTTP:是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
- 使用命令查看头信息
[root@rhel8]$ curl -I baidu.com #查看百度的web服务器
[root@rhel8]$ curl -I 163.com # 查看网易的web服务器
20.2 Apache 安装
- 命令
[root@rhel8]$ yum search apache #查找安装包
[root@rhel8]$ yum install httpd.x86_64 -y #安装Apache
20.3 Apache的启用
- 开启httpd服务
[root@rhel8]$ systemctl start httpd #开启服务
[root@rhel8]$ systemctl enable httpd # 开机自启
[root@rhel8]$ systemctl status httpd # 查看状态
- 设置httpd防火墙规则
[root@rhel8]$ firewall-cmd --list-all #查看防火墙规则
[root@rhel8]$ firewall-cmd --permanent --add-service=http # 开启防火墙中的http服务 (--permanent 为永久开启)
[root@rhel8]$ firewall-cmd --reload # 重新加载防火墙规则
- 安装成功后浏览器可以直接访问IP地址
20.4 Apache的基本信息
- 服务名称:httpd
- 配置文件:
- 主配置文件:/etc/httpd/conf/httpd.conf
- 子配置文件:/etc/httpd/conf.d/*.conf
- 默认发布目录:/var/www/html
- 默认发布文件:/var/www/html/index.html
- 默认端口:
- http:80
- https:443
- 用户:Apache
- 日志:/etc/httpd/logs
- 查看配置文件:
[root@rhel8]$ rpm -qc httpd
- 配置文件查看:
[root@rhel8]$ vim /etc/httpd/conf/httpd.conf
20.5 Apache的基本配置
20.5.1 默认发布文件
- 默认发布文件:/var/www/html/index.html
- 写入默认发布文件后在浏览器直接访问服务端(192.168.0.109)可以直接看到写入内容:
- 如果写的文件不是默认发布文件访问如下:
- 如果想要以网址访问需要在访问主机上编写解析文件
[root@rhel8]$ vim /etc/hosts #编写解析文件
- 可以直接修改配置文件将默认发布文件设置为text.html 修改配置文件后需要重启httpd服务才能生效
20.5.2 默认端口
- 默认http的端口为:80
- 修改配置文件 ,将端口号改为1111
[root@rhel8]$ vim /etc/httpd/conf/httpd.conf
- 重启服务会失败,我们需要在selinux以及防火墙中开启端口1111
- 在浏览器访问时需要在后面加上“:1111”
20.5.3 默认发布目录
- 默认发布目录:/var/www/html
- 修改配置文件,写入新的发布目录
[root@rhel8]$ vim /etc/httpd/conf/httpd.conf
- 新建目录需要将目录的安全上下文修改为原/var/www/html 一样的安全上下文。最后重启服务。
- 修改目录后进行访问
20.6 Apache 的访问控制
实验素材:
[root@rhel8]$ mkdir /var/www/html/dir #新建目录
[root@rhel8]$ vim /var/www/html/dir/index.html #新建文件
new world #写入新建文件
20.6.1 基于客户端IP的访问控制
- 修改主配置文件:设置白名单
[root@rhel8]$ vim /etc/httpd/conf/httpd.conf
- 修改主配置文件:设置黑名单
[root@rhel8]$ vim /etc/httpd/conf/httpd.conf
20.6.2 基于用户认证访问
- 生成认证文件,文件生成后再添加用户时不要“-c”参数否则会覆盖源文件内容
- 修改主配置文件后重启服务
[root@rhel8]$ vim /etc/httpd/conf/httpd.conf
[root@rhel8]$ systemctl restart httpd
- 使用浏览器访问此目录时如下:
20.7 Apache 的虚拟主机
- 新建站点发布目录以及发布文件
[root@rhel8]$ mkdir -p /var/www/html/virtual/text.com/{news,music}
[root@rhel8]$ echo news > /var/www/html/virtual/text.com/news/index.html
[root@rhel8]$ echo music > /var/www/html/virtual/text.com/music/index.html
- 新建/编写虚拟主机配置文件
[root@rhel8]$ vim /etc/httpd/conf.d/vhosts.conf
- 重启服务
[root@rhel8]$ systemctl restart httpd
- 在客户主机上编写域名解析文件,解析地址和上面虚拟主机配置文件的服务名称相同
[root@rhel8]$ vim /etc/hosts
- 用浏览器进行域名访问时如下图:
20.8 Apache的支持语言
20.8.1 php
- 安装php
- 编写 ".php"文件并重启服务
- 使用浏览器进行访问“.php”文件
- 其实我们可以安装Apache手册来充分了解Apache
20.8.2 cgi
- 新建cgi目录并修改创建目录的安全上下文和cgi-bin目录的安全上下文相同。同时新建“.cgi”文件,并写入。
- 编写子配置文件,设定可以执行“.cgi”文件。并重启服务。
- 使用浏览器访问可以访问到“.cgi”文件。
20.9 Apache的加密访问(https)
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
OpenSSL(Open Secure Sockets Layer) 是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
20.9.1 生成证书
- 安装ssl插件
- 设置防火墙允许https服务
- 浏览器访问时为不安全访问
- 查看网站证书信息 (点锁子就可以看到本网站的证书信息)
- 火狐浏览器证书存在位置:
- 以下步骤新建证书
- 生成2048位RSA私钥,导入/etc/pki/tls/private/www.text.com.key文件中
- 生成证书签名请求文件,导入/etc/pki/tls/certs/www.text.com.crt文件中
- 通过证书请求及私钥,生成类型为x509,有效期为365天的证书,并导入/etc/pki/tls/certs/www.text.com.crt文件中:生成证书。
x509 证书格式 | -req 请求 ||| -in 加载签证名称
- 修改ssl配置文件并重启
- 再去打开浏览器访问https,移除之前的证书新加载证书生成。
20.9.2 虚拟主机配置 https
- 浏览器用https访问虚拟主机时直接访问默认地址
- 修改子配置文件对虚拟主机加上https服务。并重启服务。
- 浏览器可以使用https访问设定的虚拟主机
20.9.3 强制加密访问(https)
- 修改子配置文件对域名进行强制加密。并重启服务。
- 加密效果就是当输入music.text.com回车时直接访问https:// music.text.com