利用主机域名配置Apache的虚拟主机功能,可以减轻服务器为每一个网站分配IP地址的压力。而且根据不同的主机域名可以输出不同的网页内容。要实现此项功能,可以通过修改/etc/host文件来强制定义IP地址与域名的对应关系。

第一步:修改/etc/hosts配置文件

在/etc/hosts文件中假如下面标注出的信息

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

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.146.100 www.baidu.com bbs.baidu.com tech.baidu.com

第二步:检测IP地址解析是否成功

可以通过ping域名来验证IP地址是否解析成功

[root@localhost ~]# ping www.baidu.com
PING www.baidu.com (192.168.146.100) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=2 ttl=64 time=0.100 ms
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=3 ttl=64 time=0.098 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2019ms
rtt min/avg/max/mdev = 0.058/0.085/0.100/0.020 ms

[root@localhost ~]# ping bbs.baidu.com
PING www.baidu.com (192.168.146.100) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=2 ttl=64 time=0.107 ms
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=3 ttl=64 time=0.107 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2009ms
rtt min/avg/max/mdev = 0.062/0.092/0.107/0.021 ms
[root@localhost ~]# ping tech.baidu.com
PING www.baidu.com (192.168.146.100) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=2 ttl=64 time=0.099 ms
64 bytes from www.baidu.com (192.168.146.100): icmp_seq=3 ttl=64 time=0.104 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.058/0.087/0.104/0.020 ms

由此而见,IP地址解析成功

第三步:在/home/wwwroot创建保存不同网页数据的目录

创建好目录之后,在查看一下,确保目录全都创建完成

[root@localhost ~]# mkdir -p /home/wwwroot/www
[root@localhost ~]# mkdir -p /home/wwwroot/bbs
[root@localhost ~]# mkdir -p /home/wwwroot/tech
[root@localhost ~]# ls /home/wwwroot
100 110 120 bbs index.html tech www

第四步:分别向创建好的目录中写入内容

[root@localhost ~]# echo "fei fei wo xiang ni" > /home/wwwroot/www/index.html
[root@localhost ~]# echo "fei fei wo lian ni" > /home/wwwroot/bbs/index.html
[root@localhost ~]# echo "fei fei wo ai ni" > /home/wwwroot/tech/index.html

第五步:修改Apache服务的配置文件

在配置文件中加入基于主机名的虚拟主机网站参数,大概位置在113行左右,文档编辑好记得保存退出。

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

113 <VirtualHost 192.168.146.100>
114 DocumentRoot /home/wwwroot/www
115 ServerName www.baidu.com
116 <Directory /home/wwwroot/www >
117 AllowOverride None
118 Require all granted
119 </Directory>
120 </VirtualHost>
121 <VirtualHost 192.168.146.100>
122 DocumentRoot /home/wwwroot/bbs
123 ServerName bbs.baidu.com
124 <Directory /home/wwwroot/bbs >
125 AllowOverride None
126 Require all granted
127 </Directory>
128 </VirtualHost>
129 <VirtualHost 192.168.146.100>
130 DocumentRoot /home/wwwroot/tech
131 ServerName tech.baidu.com
132 <Directory /home/wwwroot/100 >
133 AllowOverride None
134 Require all granted
135 </Directory>
136 </VirtualHost>

第六步:重启Apache服务,并访问网页

[root@localhost ~]# systemctl restart httpd

第七步:修改SELinux安全上下文,并使其立即生效。

由于我在利用IP地址配置虚拟主机功能的时候,就已经配置过SELinux安全上下文,所以在第六步的时候既可以访问成功,但是如果在第六步的时候不能访问,执行第七步,既可以访问。

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*
[root@localhost ~]# restorecon -Rv /home/wwwroot

利用主机域名配置Apache的虚拟主机功能的更多相关文章

  1. php配置虚拟主机的配置步骤(hosts、httpd.conf、vhosts.conf)1.配置本地的dns文件2.配置apache的主配置文件3.配置Apache的虚拟主机

    1.域名解析(DNS) 找到C:\Windows\System32\drivers\etc目录下的hosts文件,在里面进行添加对应的内容

  2. Centos7下配置Apache的虚拟主机

    一.虚拟主机 虚拟主机是Apache提供的一个功能,通过虚拟主机拉雅在一台服务器上部署多个网站.虽然服务器的IP地址是相同的,但用户当用户使用不同的域名访问时,访问到的是不同的网站. 下面讲解Apac ...

  3. win7下配置Apache本地虚拟主机

    我们有时候从网上下载下来的php源码很多都是应用在网站根目录下的,而我们又想在本地先测试一遍确定没有问题了再上传空间,但一换到子目录下的时候因为路径问题,使得许多图片.内容都无法显示. 这个时候我们就 ...

  4. ubuntu配置apache的虚拟主机

    ubuntu中apache的配置文件分散在几个文件中,/etc/apache2/apache2.conf将它们组织起来.这样设计有很多好处,这里就不在赘述了.进入正题: 1)配置文件在/etc/apa ...

  5. 配置 Apache 的虚拟主机

    1.在host配置比如: 找到记事本以管理员的身份打开,然后文件->打开  C:\Windows\System32\drivers\etc    下面的hosts文件 127.0.0.1 www ...

  6. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  7. apache中虚拟主机的配置

    一.两种方式:基于域名的虚拟主机和基于IP地址的的虚拟主机 (这里基于前者) 二.作用:实现在同一个web服务器下,同时运行很多个站点(项目) 三.虚拟主机的配置 1.在核心配置文件中加载虚拟主机配置 ...

  8. Web服务器(Apache)虚拟主机的配置

    一.定义    所谓虚拟主机是指在一台服务器里运行几个网站,提供WEB.FTP.Mail等服务.    二.虚拟主机的实现方法有三种:    基于IP的方法,基于主机名的方法和基于端口的法官法.    ...

  9. windows下Apache的虚拟主机配置

    1.Apache虚拟主机: 在Apache上有关于虚拟主机的具体说明,具体可以参考Apache手册,这里简单的说一下虚拟主机主要分为两种: 1.基于主机名的虚拟主机(一个IP地址,多个网站) 2.基于 ...

随机推荐

  1. 永远不要眼高手低,Vue完整实现一套简单的增删改查CURD操作

    1: 永远不要眼高手低,看起来很简单,但是你从来没有去动手试一下,就不知道其中真正需要注意的许多细节, 2:完整code如下: 1 <!DOCTYPE html> 2 <html l ...

  2. Kubernetes-3.安装

    docker version:19.03.14 kubernetes version:1.19.4 本文介绍使用kubeadm安装Kubernetes集群的简单过程. 目录 使用kubeadm安装k8 ...

  3. 企业安全_监控Github关键字

    目录 Hawkeye GSIL Hawkeye github: https://github.com/0xbug/Hawkeye 教程: https://my.oschina.net/adailinu ...

  4. SpringBoot利用spring.profiles.active=@spring.active@不同环境下灵活切换配置文件

    一.创建配置文件 配置文件结构:这里建三个配置文件,application.yml作为主配置文件配置所有共同的配置:-dev和-local分别配置两种环境下的不同配置内容,如数据库地址等. appli ...

  5. CentOS7 下 MySQL 5.7.23 & XtraBackup 24 做数据备份(1)——安装软件

    在两台机子上同时操作下面的步骤 首先安装MySQL,从官网下载相对应版本的RPM包 mysql-community-client-5.7.23-1.el7.x86_64.rpm mysql-commu ...

  6. JavaScript中的事件循环机制跟函数柯里化

    一.事件循环机制的理解 test();//按秒输出5个5 function test() { for (var i = 0; i < 5; i++) { setTimeout(() => ...

  7. 基于角色访问控制RBAC权限模型的动态资源访问权限管理实现

    RBAC权限模型(Role-Based Access Control) 前面主要介绍了元数据管理和业务数据的处理,通常一个系统都会有多个用户,不同用户具有不同的权限,本文主要介绍基于RBAC动态权限管 ...

  8. 基于云原生DevOps服务自动化部署前端项目学习总结

    本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发 ...

  9. mongodb 聚合(aggregate)

      MongoDB中文手册|官方文档中文版 https://docs.mongoing.com/ 聚合操作处理数据记录和 return 计算结果.聚合操作将来自多个文档的值组合在一起,并且可以对分组数 ...

  10. [LeetCode 279.] Perfect Squres

    LeetCode 279. Perfect Squres DP 是笨办法中的高效办法,又是一道可以被好办法打败的 DP 题. 题目描述 Given a positive integer n, find ...