RHCE——httpd实验

本文详细介绍了如何在RHCE环境中配置HTTPD服务,包括基于自定义配置文件、IP、端口和主机名的虚拟主机设置,以及HTTPS加密和用户认证的虚拟主机。此外,还涉及了基于Python的动态虚拟主机实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RHCE——HTTPD分类实验

一、基于自定义配置文件的虚拟主机

  1. 先进入此路径下/etc/httpd/conf.d
[root@localhost ~]# cd /etc/httpd/conf.d/
  1. 通过vim修改host.conf的配置添加一下内容
[root@localhost conf.d]# vim host.conf
[root@localhost conf.d]# cat host.conf
<directory /www>
allowoverride none
require all granted
</directory>

<virtualhost 192.168.100.147:80>
servername 192.168.100.147
documentroot /www/147
</virtualhost>
  1. 创建目录并输入内容
[root@localhost conf.d]# mkdir /www/147 -p
[root@localhost conf.d]# echo welcome to 147 > /www/147/index.html
  1. 重启httpd服务并关闭防火墙进行测试
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# systemctl stop firewalld
[root@localhost conf.d]# setenforce 0

在这里插入图片描述

二、基于ip的多虚拟主机

  1. ip a查看本机ip地址
    在这里插入图片描述

  2. 添加一个新的ip地址并启用

[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# nmcli connection modify ens160 +ipv4.address 192.168.100.148/24
[root@localhost conf.d]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

在这里插入图片描述

  1. 通过vim修改host.conf的配置
[root@localhost conf.d]# cat host.conf
<directory /www>
allowoverride none
require all granted
</directory>

#基于自定义
<virtualhost 192.168.100.147:80>
servername 192.168.100.147
documentroot /www/147
</virtualhost>

#基于ip的多虚拟主机
<virtualhost 192.168.100.148:80>
servername 192.168.100.147
documentroot /www/148
</virtualhost>
  1. 创建/www/148目录并输入内容
[root@localhost conf.d]# mkdir /www/148 -p
[root@localhost conf.d]# echo welcome to 148 > /www/148/index.html
  1. 重启httpd服务并测试
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# systemctl stop firewalld

在这里插入图片描述

三、基于端口的多虚拟主机

  1. 配置host.conf
[root@localhost conf.d]# cat host.conf
<directory /www>
allowoverride none
require all granted
</directory>

#基于自定义
<virtualhost 192.168.100.147:80>
servername 192.168.100.147
documentroot /www/147
</virtualhost>

#基于端口的多虚拟主机
<virtualhost 192.168.100.147:90>
servername 192.168.100.147
documentroot /www/90
</virtualhost>
<virtualhost 192.168.100.147:91>
servername 192.168.100.147
documentroot /www/91
</virtualhost>

listen 90
listen 91

·listen用于监听端口

  1. 创建/www/90、/www/91目录并输入内容(略)
  2. 重启httpd服务并测试
    在这里插入图片描述
    在这里插入图片描述

四、基于主机名的多虚拟主机

[root@localhost conf.d]# cat host.conf
<directory /www>
allowoverride none
require all granted
</directory>

#基于主机名的多虚拟主机
<virtualhost 192.168.100.147:80>
servername www.aa.com
documentroot /www/aa
</virtualhost>
<virtualhost 192.168.100.147:80>
servername www.bb.com
documentroot /www/bb
</virtualhost>

五、基于https协议的加密虚拟主机

  1. 下载支持https的模块
[root@localhost conf.d]# dnf install mod_ssl -y
  1. 将Makefile文件传送到虚拟机内并确保在/etc/pki/tls/certs目录下
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/722c7cd8782542ceb1c17ccb7bcf02d8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LuK5pma5LiN5ZCD6bG8,size_16,color_FFFFFF,t_70,g_se,x_1在这里插入图片描述
    在这里插入图片描述

  2. 先创建自签证书和密钥

[root@localhost certs]# make haha.crt
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > haha.key
Generating RSA private key, 2048 bit long modulus (2 primes)
.....+++++
...........................................+++++
e is 65537 (0x010001)
Enter pass phrase:
Verifying - Enter pass phrase:
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key haha.key -x509 -days 365 -out haha.crt 
Enter pass phrase for haha.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:86
State or Province Name (full name) []:chongqing
Locality Name (eg, city) [Default City]:yongchuan
Organization Name (eg, company) [Default Company Ltd]:chengke
Organizational Unit Name (eg, section) []:devops
Common Name (eg, your name or your server's hostname) []:www.haha.com
Email Address []:admin@haha.com

(Country Name到Organizational Unit Name 都可以随便填)

  1. 把钥匙放到默认路径
[root@kittod certs]# mv haha.key ../private/
  1. 在/etc/httpd/conf.d路径下修改host.conf文件
[root@localhost conf.d]# cat host.conf
<directory /www>
allowoverride none
require all granted
</directory>

#基于用户认证的虚拟主机
<virtualhost 192.168.100.147:443>
servername www.haha.com
documentroot /www/haha
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/haha.crt
SSLCertificateKeyFile /etc/pki/tls/private/haha.key
</virtualhost>
  1. 重启服务并测试访问
    在这里插入图片描述

六、基于用户认证的虚拟主机(此实验有错待改善)

  1. 创建用户账号及密码
[root@localhost conf.d]# htpasswd -c /etc/httpd/zhangsan abc
New password: 
Re-type new password: 
Adding password for user abc
[root@localhost conf.d]# vim /etc/httpd/zhangsan
[root@localhost conf.d]# htpasswd  /etc/httpd/zhangsan tom
New password: 
Re-type new password: 
Adding password for user tom
  1. 配置host.conf文件内容
[root@localhost conf.d]# cat host.conf
<directory /www>
allowoverride none
require all granted
</directory>

#基于用户认证的虚拟主机
<directory /usr/local/mysecret>
authtype basic
authname "This is a private directory,Please Login: "
authuserfile /etc/httpd/zhanghao
require user abc tom
</directory>
<virtualhost 192.168.100.147:80>
servername www.haha.com
alias /mysecret /usr/local/mysecret
documentroot /www/haha
</virtualhost>

  1. 创建目录
[root@localhost conf.d]# mkdir /usr/local/mysecret/
  1. 输入内容
[root@localhost conf.d]# echo This is mysecret > /usr/local/mysecret/index.html
  1. 重启服务并测试
[root@localhost conf.d]# systemctl restart httpd

七、基于python的动态虚拟主机

  1. 安装python模块
[root@localhost conf.d]# dnf install python3-mod_wsgi -y
  1. 脚本内容
[root@localhost conf.d]# cat /var/www/cgi-bin/helloworld.wsgi
def application(environ, start_response):
	status = '200 OK'
	output = b'Hello world'
	response_headers = [('Content-type', 'text/plain'),
			    ('Content-Length', str(len(output)))]
	start_response(status, response_headers)

	return [output]
  1. 配置文件
[root@localhost conf.d]# cat host.conf
<directory /www>
allowoverride none
require all granted
</directory>

#基于python的动态虚拟主机
<virtualhost 192.168.100.147:80>
servername www.haha.com
WSGIScriptAlias / /var/www/cgi-bin/helloworld.wsgi
</virtualhost>
  1. 重启服务并测试
[root@localhost conf.d]# systemctl restart httpd

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值