自定义配置文件 /etc/httpd/conf.d

文章目录

    • 一.基于IP地址的不同虚拟主机
      • 1.1.查看自己的IP:
      • 1.2.在 /etc/httpd/conf.d 下写配置文件:
      • 1.3.添加IP
      • 1.4.创建目录以及在该目录下写内容
      • 1.5.在网页中访问192.168.111.130
      • 1.6.对于1.5的排错
    • 二.基于不同端口的虚拟主机
      • 2.1基于一的实验,写配置文件
      • 2.2 创建目录并写入内容
      • 2.3 在配置文件中写监听端口
      • 2.4 在防火墙中添加端口
      • 2.5 在网页中查看
    • 三.基于不同主机名的虚拟主机
      • 3.1 基于上面的实验添加不同主机名到配置文件
      • 3.2 创建目录以及写入内容
      • 3.3查看防火墙状态关闭SELINUX
      • 3.4查看httpd服务,如果没有开启需要开启
      • 3.5在/etc/hosts文件中添加主机名
      • 3.6 在网页中也可以访问自定义的主机名
    • 四.基于用户认证的虚拟主机
      • 4.1创建用户
      • 4.2创建目录并且写入内容
      • 4.3 写虚拟配置文件,重启服务
      • 4.4在网页中查看结果
    • 五.基于python的动态虚拟主机
      • 5.1.安装python模块
      • 5.2.写脚本内容
      • 5.3.修改配置内容,重启服务
    • 六.总结
    • 七.附录

一.基于IP地址的不同虚拟主机

1.1.查看自己的IP:

自定义配置文件 /etc/httpd/conf.d_第1张图片

1.2.在 /etc/httpd/conf.d 下写配置文件:

自定义配置文件 /etc/httpd/conf.d_第2张图片
vhost是名字,.conf 是后缀名。名字可以任意取,后缀名不能改变
vim vhost.conf 内容:
自定义配置文件 /etc/httpd/conf.d_第3张图片
/www/130和 /www/129 是我们自定义的两个目录

192.168.111.130 是我们之前1步骤查看到的IP
192.168.111.129 是我们添加的IP

自定义配置文件 /etc/httpd/conf.d_第4张图片
写完配置之后,我们就可以发现多了一个vhost.conf 的文件,这个文件就是我们刚刚写的。

补充:
虚拟主机和虚拟机不是一回事
虚拟主机是:

servername 192.168.24.130
documentroot /www/130

虚拟机是:
自定义配置文件 /etc/httpd/conf.d_第5张图片

1.3.添加IP

[root@localhost ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.111.129/24
[root@localhost ~]# nmcli connection up ens160
添加的IP192.168.111.129是vhost中写的IP
看下图,可以发现,已经成功添加了IP192.168.111.129
自定义配置文件 /etc/httpd/conf.d_第6张图片
[root@localhost ~]# systemctl restart httpd 重启一下配置
[root@localhost ~]# netstat -lntup | grep httpd 查看

1.4.创建目录以及在该目录下写内容

[root@localhost ~]# mkdir /www/130
[root@localhost ~]# mkdir /www/129
[root@localhost www]# echo welcome to 130 > /www/130/index.html
[root@localhost www]# echo welcome to 129 > /www/129/index.html

自定义配置文件 /etc/httpd/conf.d_第7张图片
由上图我们可以看出,已经成功创建了/www/130和/www/129这俩个目录,这是步骤1.2中配置文件写的目录。
并且已经在相应的目录下的index.html 中写下了相应的内容

1.5.在网页中访问192.168.111.130

看网页是否会显示之前我们写的welcom to 130
自定义配置文件 /etc/httpd/conf.d_第8张图片
可以看出没有显示,说明出了问题,现在来查看问题出在哪,如果没有问题的伙伴们,这个实验就成功了。

1.6.对于1.5的排错

[root@localhost 130]# systemctl status httpd 查看httpd服务状态
自定义配置文件 /etc/httpd/conf.d_第9张图片
由图片可知,我们写的两个目录都不存在,这时我们重启一下httpd服务,再次查看状态
[root@localhost 130]# systemctl restart httpd
[root@localhost 130]# systemctl status httpd
自定义配置文件 /etc/httpd/conf.d_第10张图片
发现报错没有了。但是在网页中查看,还是没有看到我们的内容welcome to 130,继续排错。
查看日志:
[root@localhost 130]# tail -f /var/log/httpd/access_log
输入这行命令之后,刷新网页,红色的部分就是刷新网页之后显示的,发现也没什么错误
自定义配置文件 /etc/httpd/conf.d_第11张图片
查看另外的日志:
[root@localhost 130]# tail -f /var/log/httpd/error_log
自定义配置文件 /etc/httpd/conf.d_第12张图片
这时我们就可以发现错误了,划红线的意思是在服务配置文件中拒绝了客户端,怎么拒绝的?就是没有给权限。所以需要我们去配置文件当中写上权限。

[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
自定义配置文件 /etc/httpd/conf.d_第13张图片
[root@localhost conf.d]# systemctl restart httpd 再次重启服务

自定义配置文件 /etc/httpd/conf.d_第14张图片
可以看到刚刚的报错没有了。再次打开我们的网页。可以发现成功了

自定义配置文件 /etc/httpd/conf.d_第15张图片
自定义配置文件 /etc/httpd/conf.d_第16张图片

所以,在我们一开始写配置文件的时候就可以把权限写上了。

二.基于不同端口的虚拟主机

2.1基于一的实验,写配置文件

[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf

自定义配置文件 /etc/httpd/conf.d_第17张图片

2.2 创建目录并写入内容

[root@localhost conf.d]# cd /www
[root@localhost www]# mkdir 8080
[root@localhost www]# mkdir 9090
[root@localhost www]# echo welcome to 8080 > 8080/index.html
[root@localhost www]# echo welcome to 9090 > 9090/index.html
[root@localhost 8080]# systemctl restart httpd 重启一下服务

自定义配置文件 /etc/httpd/conf.d_第18张图片
[root@localhost 8080]# netstat -lntup | grep httpd 查看httpd端口发现没有8080和9090
在这里插入图片描述

2.3 在配置文件中写监听端口

因为配置文件中没有写监听8080和9090的端口,所以,查看端口发现没有8080和9090端口
[root@localhost 8080]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
[root@localhost conf.d]# systemctl restart httpd 重启一下服务

自定义配置文件 /etc/httpd/conf.d_第19张图片
在这里插入图片描述

2.4 在防火墙中添加端口

[root@localhost 8080]# firewall-cmd --permanent --add-port=8080/tcp
[root@localhost 8080]# firewall-cmd --permanent --add-port=9090/tcp
[root@localhost 8080]# firewall-cmd --reload

2.5 在网页中查看

自定义配置文件 /etc/httpd/conf.d_第20张图片

自定义配置文件 /etc/httpd/conf.d_第21张图片

所以,在写配置文件的时候,可以写完整,到这里基于不同端口虚拟主机的实验就做完了。

三.基于不同主机名的虚拟主机

3.1 基于上面的实验添加不同主机名到配置文件

[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
自定义配置文件 /etc/httpd/conf.d_第22张图片

3.2 创建目录以及写入内容

[root@localhost conf.d]# cd /www
[root@localhost www]# mkdir haha
[root@localhost www]# mkdir xm
[root@localhost www]# echo welcome to haha > haha/index.html
[root@localhost www]# echo welcome to xm > xm/index.html

自定义配置文件 /etc/httpd/conf.d_第23张图片

3.3查看防火墙状态关闭SELINUX

[root@localhost haha]# firewall-cmd --list-all
[root@localhost haha]# setenforce 0

自定义配置文件 /etc/httpd/conf.d_第24张图片

在这里插入图片描述

3.4查看httpd服务,如果没有开启需要开启

[root@localhost xixi]# systemctl status httpd
自定义配置文件 /etc/httpd/conf.d_第25张图片

我的httpd状态是开启的。如果没有开启,就需要输入命令
[root@localhost www]# systemctl start httpd 进行启动

3.5在/etc/hosts文件中添加主机名

[root@localhost haha]# vim /etc/hosts
自定义配置文件 /etc/httpd/conf.d_第26张图片

自定义配置文件 /etc/httpd/conf.d_第27张图片
ping 我们自定义的主机名,ping的通且是自己的IP地址
在这里插入图片描述
还可以使用命令curl www.haha.com 查看内容

3.6 在网页中也可以访问自定义的主机名

根据下图路径选择用Notepda++的方式打开hosts文件,没有Notepad++的可以访问以下链接下载https://download.csdn.net/download/weixin_53308294/85049044
自定义配置文件 /etc/httpd/conf.d_第28张图片
打开后,添加我们自定义的主机名,一定记得保存。
自定义配置文件 /etc/httpd/conf.d_第29张图片
如果保存的时候遇到了以下图片的情况,点是。然后再保存
自定义配置文件 /etc/httpd/conf.d_第30张图片
在网页中访问如下:
自定义配置文件 /etc/httpd/conf.d_第31张图片
试试访问www.xm.com看是什么效果。
到这里基于不同主机名的虚拟主机实验的实验就做完了。

四.基于用户认证的虚拟主机

4.1创建用户

[root@localhost ~]# htpasswd -c /etc/httpd/zhanghao abc
[root@localhost ~]# htpasswd /etc/httpd/zhanghao tom 第二次不用-c
记住密码!!!!
自定义配置文件 /etc/httpd/conf.d_第32张图片
查看 /etc/httpd/zhanghao
[root@localhost ~]# cat /etc/httpd/zhanghao

在这里插入图片描述

4.2创建目录并且写入内容

[root@localhost ~]# mkdir /usr/local/mysecret
[root@localhost ~]# echo this is mysecret > /usr/local/mysecret/index.html

自定义配置文件 /etc/httpd/conf.d_第33张图片

4.3 写虚拟配置文件,重启服务

[root@localhost mysecret]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf

自定义配置文件 /etc/httpd/conf.d_第34张图片
authtype 是认证类型 basic 是基本认证类型,也就是账号密码
authname 是认证名称也就是提示的内容
authuserfile 需要认证的目录
require user 需要的用户

写别名:
自定义配置文件 /etc/httpd/conf.d_第35张图片
/mysecret 是路径别名
[root@localhost conf.d]# systemctl restart httpd 重启服务

4.4在网页中查看结果

由下图可以看到,访问www.xm.com/mysecret 的时候会有一个弹窗,需要我们输入用户和密码,把刚刚我们所创建的用户和密码输入,页面就会跳转到下面的第二幅图
自定义配置文件 /etc/httpd/conf.d_第36张图片
自定义配置文件 /etc/httpd/conf.d_第37张图片

五.基于python的动态虚拟主机

5.1.安装python模块

[root@localhost conf.d]# dnf install python3-mod_wsgi -y

5.2.写脚本内容

[root@localhost conf.d]# vim /var/www/cgi-bin/hello.wsgi
自定义配置文件 /etc/httpd/conf.d_第38张图片

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]

5.3.修改配置内容,重启服务

[root@localhost conf.d]# vim vhost.conf
[root@localhost conf.d]# systemctl restart httpd

自定义配置文件 /etc/httpd/conf.d_第39张图片
网页中查看:
自定义配置文件 /etc/httpd/conf.d_第40张图片

六.总结

1.每次重新启动虚拟机,或者在xshell中重新连接之后,查看getenforce都是Enforcing,在开启httpd之前需要关闭,这样才能开启httpd服务。
如下图所示:

自定义配置文件 /etc/httpd/conf.d_第41张图片
2.写自己自定义的域名的时候,尽量写互联网上没有的,否则,网页上可能没有反应。
一开始我写了一个www.xixi.com 的域名,在网页上没有效果,在互联网上有https://xixi.com这个网站。之后我换了一个www.xm.com的域名之后,在网页上就能看到效果了。
3.每次修改了配置都需要重启httpd服务,确保开启了httpd服务

到这里所有实验就完成了。

七.附录

配置文件中的内容:

listen 8080
listen 9090

	allowoverride none
	require all granted


authtype basic
authname "this is mysecret, please input password:"
authuserfile /etc/httpd/zhanghao
require user abc tom



	servername 192.168.111.128
	documentroot /www/128



	servername 192.168.111.129
	documentroot /www/129




        servername 192.168.111.128
        documentroot /www/8080


        servername 192.168.111.128
        documentroot /www/9090



	servername www.haha.com
	documentroot /www/haha


	servername www.xm.com
	alias /mysecret /usr/local/mysecret
	wsgiscriptalias / /var/www/cgi-bin/hello.wsgi

自定义配置文件 /etc/httpd/conf.d_第42张图片

你可能感兴趣的:(RHCE实验,linux,rhce)