文章目录

  • 一.基于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:

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


vhost是名字,.conf 是后缀名。名字可以任意取,后缀名不能改变
vim vhost.conf 内容:

/www/130和 /www/129 是我们自定义的两个目录

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


写完配置之后,我们就可以发现多了一个vhost.conf 的文件,这个文件就是我们刚刚写的。

补充:
虚拟主机和虚拟机不是一回事
虚拟主机是:
<virtualhost 192.168.24.130:80>
servername 192.168.24.130
documentroot /www/130
</ virtualhost>
虚拟机是:

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

[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


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

1.5.在网页中访问192.168.111.130

看网页是否会显示之前我们写的welcom to 130

可以看出没有显示,说明出了问题,现在来查看问题出在哪,如果没有问题的伙伴们,这个实验就成功了。

1.6.对于1.5的排错

[root@localhost 130]# systemctl status httpd 查看httpd服务状态

由图片可知,我们写的两个目录都不存在,这时我们重启一下httpd服务,再次查看状态
[root@localhost 130]# systemctl restart httpd
[root@localhost 130]# systemctl status httpd

发现报错没有了。但是在网页中查看,还是没有看到我们的内容welcome to 130,继续排错。
查看日志:
[root@localhost 130]# tail -f /var/log/httpd/access_log
输入这行命令之后,刷新网页,红色的部分就是刷新网页之后显示的,发现也没什么错误

查看另外的日志:
[root@localhost 130]# tail -f /var/log/httpd/error_log

这时我们就可以发现错误了,划红线的意思是在服务配置文件中拒绝了客户端,怎么拒绝的?就是没有给权限。所以需要我们去配置文件当中写上权限。

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

[root@localhost conf.d]# systemctl restart httpd 再次重启服务


可以看到刚刚的报错没有了。再次打开我们的网页。可以发现成功了


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

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

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

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

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 重启一下服务


[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 重启一下服务


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 在网页中查看

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

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

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

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

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

3.3查看防火墙状态关闭SELINUX

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

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

[root@localhost xixi]# systemctl status httpd

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

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

[root@localhost haha]# vim /etc/hosts


ping 我们自定义的主机名,ping的通且是自己的IP地址

还可以使用命令curl www.haha.com 查看内容

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

根据下图路径选择用Notepda++的方式打开hosts文件,没有Notepad++的可以访问以下链接下载https://download.csdn.net/download/weixin_53308294/85049044

打开后,添加我们自定义的主机名,一定记得保存。

如果保存的时候遇到了以下图片的情况,点是。然后再保存

在网页中访问如下:

试试访问www.xm.com看是什么效果。
到这里基于不同主机名的虚拟主机实验的实验就做完了。

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

4.1创建用户

[root@localhost ~]# htpasswd -c /etc/httpd/zhanghao abc
[root@localhost ~]# htpasswd /etc/httpd/zhanghao tom 第二次不用-c
记住密码!!!!

查看 /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

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

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


authtype 是认证类型 basic 是基本认证类型,也就是账号密码
authname 是认证名称也就是提示的内容
authuserfile 需要认证的目录
require user 需要的用户

写别名:

/mysecret 是路径别名
[root@localhost conf.d]# systemctl restart httpd 重启服务

4.4在网页中查看结果

由下图可以看到,访问www.xm.com/mysecret 的时候会有一个弹窗,需要我们输入用户和密码,把刚刚我们所创建的用户和密码输入,页面就会跳转到下面的第二幅图

五.基于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

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


网页中查看:

六.总结

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


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

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

七.附录

配置文件中的内容:

listen 8080
listen 9090
<directory /www>allowoverride nonerequire all granted
</directory>
<directory /usr/local/mysecret>
authtype basic
authname "this is mysecret, please input password:"
authuserfile /etc/httpd/zhanghao
require user abc tom
</directory><virtualhost 192.168.111.128:80>servername 192.168.111.128documentroot /www/128
</virtualhost><virtualhost 192.168.111.129:80>servername 192.168.111.129documentroot /www/129
</virtualhost><virtualhost 192.168.111.128:8080>servername 192.168.111.128documentroot /www/8080
</virtualhost>
<virtualhost 192.168.111.128:9090>servername 192.168.111.128documentroot /www/9090
</virtualhost><virtualhost 192.168.111.128:80>servername www.haha.comdocumentroot /www/haha
</virtualhost>
<virtualhost 192.168.111.128:80>servername www.xm.comalias /mysecret /usr/local/mysecretwsgiscriptalias / /var/www/cgi-bin/hello.wsgi
</virtualhost>

自定义配置文件 /etc/httpd/conf.d相关推荐

  1. linux中httpd配置文件,linux httpd.conf文件配置详解

    Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.conf来实现.下面让我们来看看httpd.conf的内容,它主要分成3大部 ...

  2. Apache主配置文件httpd.conf 详解

    2019独角兽企业重金招聘Python工程师标准>>> Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ ...

  3. linux apache 配置文件位置,Apache主配置文件httpd.conf 详解

    Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ Apache服务器的配置信息全部存储在主配置文件/etc/httpd/co ...

  4. Apache2 httpd.conf配置文件中文版详解

    Apache2 httpd.conf配置文件中文版详解 # # 基于 NCSA 服务的配置文件. # #这是Apache服务器主要配置文件. #它包含服务器的影响服务器运行的配置指令. #参见< ...

  5. apache配置文件解析(httpd.conf)

    详细图解看文章 https://www.cnblogs.com/hh1137054072/p/7612652.html apache httpd.conf配置文件详解(全文翻译) #这是Apache服 ...

  6. Apache服务器主配置文件 httpd.conf 中文版

    Apache服务器主配置文件 httpd.conf 中文版 # 基于 NCSA 服务器的配置文件 由 Rob McCool 编写! # # Apache服务器主配置文件.  包括服务器指令的目录设置. ...

  7. 第七章httpd.conf主配置文件的详解

    版本V1.0 时间2012-10-04 版权GPL 作者itnihao 邮箱 itnihao@qq.com 博客 http://itnihao.blog.51cto.com 如需重新发行,请注明以上信 ...

  8. apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项:

    例子1: Apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项: (1)MaxKeepAliveRequests 200 (2)UserDir public_html (3) ...

  9. linux查看apache配置文件路径,linux 命令行下查看apache配置文件httpd.conf位置

    如何用linux命令查看apache配置文件httpd.conf位置,说明如下 输入命令 httpd -V 输出结果 [root@MyServer ~]# httpd -V Server versio ...

  10. httpd 分页_更改 Apache httpd.conf 配置文件

    提示:如果在虚拟主机商配置,请直接配置第三.四步,因为支持 .htaccess 的空间已经配置好了前面两步. 用编辑器打开 Apache 配置文件 httpd.conf(该文件位于 Apache 安装 ...

最新文章

  1. 格式化的盘要怎么寻回文件
  2. Exchange安装
  3. 想学好Java开发,你要做到这三点
  4. boost::intrusive::splay_set用法的测试程序
  5. 学院后勤报修系统php_如何有效提升医院医疗设备故障报修问题?
  6. 李秀计算机文化基础,计算机文化基础(李秀)绪论.pptx
  7. Python+django网页设计入门(12):使用Bootstrap和jQuery
  8. 同步类容器与并发类容器
  9. 【WPF】非UI线程操作UI
  10. 子空间方法——MUSIC算法
  11. KYLO的Java并发编程知识总结
  12. onBlur和onChange冲突解决方法
  13. 俄罗斯方块是java_俄罗斯方块(java版)
  14. Linux 中断管理之ARM GIC V3 初始化
  15. TOP100summit分享实录 | 如何构建一套全链路的故障追踪和故障自愈系统?
  16. win休眠模式+定时休眠
  17. 微机原理与接口技术——A.微型计算机基础(4)
  18. matlab函数merge_MATLAB数据合并方法
  19. OJ每日一练——点和正方形的关系
  20. 进出口贸易管理系统丨汇信

热门文章

  1. 搞定检索式对话系统的候选response检索--使用pysolr调用Solr
  2. 霍乱时期的爱情——简写(下)
  3. x20手机科学计算机,360手机N4 跑分遭泄露 Helio X20名不虚传
  4. 安装 office2021
  5. 【2019-2020春学期】数据库作业13:SQL练习8 - CHECK / CONSTRAINT / TRIGGER / PROCEDURE/ FUNCTION
  6. 爬虫第3课 -豆瓣TOP250电影爬取
  7. IOS开发之——TOM猫(19)
  8. 白泽六足机器人_ros_v1——单腿RVIZ仿真
  9. JavaScript中0.1 + 0.2 等于多少
  10. 共享个人整理的Python问题,有源码,分析过程,解决方案,还有时间戳做间隔