【RHEL8】Linux系统中的Apache服务

一、Apache的作用

  1. 在web被访问时通常使用 http://(超文本传输协议) 的方式
  2. http//超文本传输协议提供的软件:Apache、nginx、stgw、jfe、Tengine

二、Apache的安装

在这里插入图片描述
在这里插入图片描述

三、Apache的启用

  1. 开启服务并设定服务位开机启动systemctl  enable  --now  httpd
    在这里插入图片描述
  2. 查看火墙信息firewall-cmd  --list-all
    在这里插入图片描述
  3. 在火墙中永久开启http访问firewall-cmd  --permanent  --add-service=http
  4. 在火墙中永久开启https访问firewall-cmd  --permanent  --add-service=https
  5. 刷新火墙使设定生效firewall-cmd  --reload
    在这里插入图片描述
    在这里插入图片描述

四、Apache的基本信息

  1. 服务名称:httpd
  2. 配置文件:主配置文件:/etc/httpd/conf/httpd.conf;子配置文件:/etc/httpd/conf.d/*.conf
  3. 默认发布目录/var/www/html
  4. 默认发布文件index.html
  5. 默认端口:80(http);443(https)
  6. 用户:apache
  7. 日志:/etc/httpd/logs
    在这里插入图片描述

五、Apache的基本配置

编辑主配置文件:/etc/httpd/conf/httpd.conf

1. Apache端口修改

(1)设定端口:在(不在)允许端口列表
(2)设定火墙允许端口:firewall-cmd  --permanent  --add-port=8080(6666)/tcp
(3)刷新火墙使设定生效:firewall-cmd  --reload
当设定的端口不在允许端口列表时多两步操作:
(4)添加端口到允许列表:semanage  port   -a  -t  http_port_t  -p tcp 6666
(5)重启服务:systemctl  restart  httpd
列出服务可以使用的端口列表semanage port  -l  |  grep   http
在这里插入图片描述
1. 当更改端口为允许列表的端口时:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 当更改的端口不在允许列表时,会存在服务重启失败的问题:

在这里插入图片描述
可以更改seliux为警告模式:
在这里插入图片描述
或者使命命令添加端口到允许列表semanage port -a -t http_port_t -p tcp 6666
在这里插入图片描述

2. 更改默认发布文件

(1)在主配置文件中找到参数DirectoryIndex,把指定文件添加到默认发布文件之前
(2)重启httpd服务即可访问

  • 当给定默认发布文件内容后,文件存在,访问时就会看到默认发布文件内容
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 当我们再次设置一个发布文件(注意必须在默认发布目录下)时,访问时必须指定文件名称才能访问到
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 可以在主配置文件中更改默认发布文件:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. 更改默认发布目录

(1)编辑主配置文件【etc/httpd/conf/httpd.conf】,修改默认目录并给定授权
(2)修改指定目录的安全上下文:semanage   fcontext  -a  -t  httpd_sys_content_t  ‘/jia(/.*)?’
(3)刷新更改:restorecon -RvvF /jia/
(4)重启httpd服务:systemctl restart httpd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Apache的访问控制

设置素材:在默认发布目录下建立一个目录jia并在此目录下编写发布文件内容
在这里插入图片描述
在这里插入图片描述
不做任何设定的情况下,任何人都可以访问:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 基于客户端IP的访问控制

在主配置文件【etc/httpd/conf/httpd.conf】中设置
(1)IP白名单:
先读取Deny的内容,禁止所有人访问;后读取Allow的内容,允许IP192.168.1.136访问。
前面Deny和Allow重复的部分会被后读取的Allow内容覆盖,所以导致只有允许的IP可以访问,其他的IP都不可以访问。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)IP黑名单:
先读取Allow的内容,允许所有人访问;后读取Deny的内容,不允许IP192.168.1.136访问。
前面Allow和Deny重复的部分会被后面读取的Deny内容覆盖,所以导致只有设置的IP不可以访问,其他的IP都可以访问。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 基于用户认证

(1)生成认证文件:htpasswd  -cm  /etc/httpd/htpasswdfile  admin
注意:当认证文件已经存在后,添加新的认证用户时,不需要加参数c,否则文件内容会被覆盖;
认证用户并不是系统的真实用户,类似与虚拟用户。

(2)编写主配置文件:有两种认证方式,允许所有用户通过认证允许指定用户通过认证(二选一)
(3)编辑完成,重启服务生效
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、Apache的虚拟主机

虚拟主机允许从一个httpd服务器同时为多个网站提供服务。基于名称的虚拟主机其中多个主机名都指向同一个IP地址,但是Web服务器根据用于到达站点的主机名提供具有不同内容的不同网站。

  1. 设定客户端解析(浏览器所在的主机):vim  /etc/hosts
    在这里插入图片描述在这里插入图片描述
  2. 建立发布目录及文件: mkdir -p /var/www/jia.com/{news,wenku};
    vim   /var/www/jia.com/news/index.html;vim   /var/www/jia.com/wenku/index.html
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 编辑子配置文件: vim  /etc/httpd/conf.d/Vhost.conf
    在这里插入图片描述
    编辑完成后重启服务httpd
  4. 测试:在浏览器中输入网址可以访问到指定内容
    在这里插入图片描述
    在这里插入图片描述

八、Apache的语言支持

html默认支持

1. php

  1. 安装php软件:dnf install php -y
    在这里插入图片描述
  2. 编辑php默认测试页:vim /var/www/html/index.php
    在这里插入图片描述
  3. 访问php:firefox http://192.168.1.135/index.php

2. cgi

  1. 建立cgi默认发布目录:mkdir  /var/www/html/cgidir
  2. 编辑cgi默认发布文件:vim  /var/www/html/cgidir/index.cgi
    在这里插入图片描述
  3. 更改权限,使其可以被访问:chmod +x /var/www/html/cgidir/index.cgi
    在这里插入图片描述
  4. 编辑子配置文件:vim  /etc/httpd/conf.d/Vhost.conf
  5. 重启服务:systemctl restart httpd
  6. 访问:firefox http://192.168.1.135/cgidir/index.cgi

九、Apache的加密访问

  1. 安装插件:dnf install mod_ssl -y
    安装成功后会生成文件:/etc/httpd/conf.d/ssl.conf
    在这里插入图片描述
    在这里插入图片描述
  2. 生成密钥:openssl genrsa -out /etc/pki/tls/private/www.jia.com/key
    在这里插入图片描述
  3. 生成证书签证文件: openssl  req  -new  -key  /etc/pki/tls/private/www.jia.com.key  -out  /etc/pki/tls/certs/www.jia.com.csr
    在这里插入图片描述
  4. 生成证书: openssl  x509  -req  -days  365  -in  /etc/pki/tls/certs/www.jia.com.csr  -signkey  /etc/pki/tls/private/www.jia.com.key  -out  /etc/pki/tls/certs/www.jia.com.csr
    在这里插入图片描述
    生成后,在配置文件【/etc/httpd/conf.d/ssl.conf】中修改相应文件,并重启服务【httpd】,就可以在浏览器中下载证书以后就看到内容
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    但是如果所有站点都采用加密的方式,虽然安全但是数据传输速率低,而且对于有的站点不需要采用加密,所以我们就可以 设置特定的站点加密即可:在子配置文件中添加相关设定。
    例如再次设置一个虚拟主机login,规定访问login.com.jia需要加密:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    设定完成后在浏览器中访问时,默认是使用80端口访问,并不是443加密端口访问,需要手动在网址上添加【https://】才可以加密访问。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这个问题可以使用网页重启功能解决:让默认访问80端口时自动跳转到443端口
    编辑子配置文件【/etc/httpd/conf.d/Vhost.conf】:
    在这里插入图片描述
    编辑完成后重启服务就可以自动跳转加密访问:
    在这里插入图片描述
    在这里插入图片描述

所以总结来说:
在第四步生成证书后,在子配置文件中,使用网页重启功能设定需要加密的站点后,重启服务即可自动加密访问

  1. 编辑配置子文件:vim  /etc/httpd/conf.d/Vhost.conf
    在这里插入图片描述
  2. 重启服务: systemctl restart httpd
发布了31 篇原创文章 · 获赞 0 · 访问量 711

猜你喜欢

转载自blog.csdn.net/qq_45225437/article/details/104716250
今日推荐