Apache的虚拟主机功能
Apache的虚拟主机功能 (Virtual Host) 是可以让一台服务器基于IP、主机名或端口号实现提供多个网站服务的技术。
第一种情况:基于IP地址
这种情况很常见:一台服务器拥有多个IP地址,当用户访问不同IP地址时显示不同的网站页面。
第1步为网卡添加多个IP地址:(方法不唯一)

重新启动网卡设备后使用ping命令检查是否配置正确

第2步:分别创建网站数据目录。
在/home/wwwroot目录下分别创建三个网站数据目录:
mkdir -p /home/wwwroot/100
mkdir -p /home/wwwroot/110
mkdir -p /home/wwwroot/120
分别在这三个网站数据目录中写入主页文件,内容为该网站的IP地址:
[root@linuxprobe
~]# echo "IP:192.168.5.100" > /home/wwwroot/100/index.html
[root@linuxprobe
~]# echo "IP:192.168.5.110" > /home/wwwroot/110/index.html
[root@linuxprobe
~]# echo "IP:192.168.5.120" > /home/wwwroot/120/index.html

第3步:在配置文件中描述基于IP地址的虚拟主机。
编辑主配置文件(/etc/httpd/conf/httpd.conf),在主配置文件的末尾按下面格式定义虚拟主机信息:
<VirtualHost 192.168.5.100>
DocumentRoot /home/wwwroot/100
ServerName www.haozhikuan-hbza.com
<Directory /home/wwwroot/100 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.5.110>
DocumentRoot /home/wwwroot/110
ServerName bbs.haozhikuan-hbza.com
<Directory /home/wwwroot/110 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.5.120>
DocumentRoot /home/wwwroot/120
ServerName tech.haozhikuan-hbza.com
<Directory /home/wwwroot/120 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

直接在末尾复制,然后重启服务即可
第4步:分别访问192.168.5.100/110/120验证结果:



第二种情况:基于主机名
当服务器无法为每个网站都分配到独立IP地址时,可以试试让Apache服务程序自动识别来源主机名或域名然后跳转到指定的网站
第1步:配置网卡IP地址与hosts文件。
hosts文件作用是定义IP地址与主机名的映射关系,即强制将某个主机名地址解析到指定的IP地址。

vim /etc/hosts
//每行只能写一条,格式为IP地址+空格+主机名(域名)。
第2步:分别创建网站数据目录:
mkdir -p /home/wwwroot/www
mkdir -p /home/wwwroot/bbs
mkdir -p /home/wwwroot/tech
分别在网站目录中写入首页文件:
echo "www.haozhikuan-hbza.com" > /home/wwwroot/www/index.html
echo "www.haozhikuan-hbza.com" > /home/wwwroot/bbs/index.html
echo "www.haozhikuan-hbza.com" > /home/wwwroot/tech/index.html

第3步:在配置文件中描述基于主机名称的虚拟主机。
编辑主配置文件(/etc/httpd/conf/httpd.conf),在主配置文件的末尾按下面格式定义虚拟主机信息:
<VirtualHost
192.168.5.100>
DocumentRoot
"/home/wwwroot/www"
ServerName
"www.haozhikuan-hbza.com"
<Directory
"/home/wwwroot/www">
AllowOverride
None
Require
all granted
</directory>
</VirtualHost>
<VirtualHost
192.168.5.110>
DocumentRoot
"/home/wwwroot/bbs"
ServerName
"bbs.haozhikuan-hbza.com"
<Directory
"/home/wwwroot/bbs">
AllowOverride
None
Require
all granted
</Directory>
</VirtualHost>
<VirtualHost
192.168.5.120>
DocumentRoot
"/home/wwwroot/tech"
ServerName
"tech.haozhikuan-hbza.com"
<Directory
"/home/wwwroot/tech">
AllowOverride
None
Require
all granted
</directory>
</VirtualHost>

复制重启服务即可
第4步:分别访问网站验证结果



第三种情况:基于端口号
我们可以让服务器开启多个服务端口后,然后让用户能够通过访问服务器的指定端口来找到想要的网站。
第1步:配置服务器的IP地址:

第2步:分别创建网站数据目录。
分别创建端口为6111,6222的网站数据目录:
mkdir -p /home/wwwroot/6111
mkdir -p /home/wwwroot/6222
分别在网站数据目录中写入不同内容的主页文件:
[root@linuxprobe
~]# echo "port:6111" > /home/wwwroot/6111/index.html
[root@linuxprobe
~]# echo "port:6222" > /home/wwwroot/6222/index.html

第3步:在配置文件中描述基于端口号的虚拟主机。
编辑主配置文件(/etc/httpd/conf/httpd.conf),找到约在42行的Listen 80,并在下面追加:
Listen
6111
Listen 6222

然后在主配置文件的末尾按下面格式定义虚拟主机信息:
<VirtualHost
192.168.5.100:6111>
DocumentRoot “/home/wwwroot/6111”
ServerName www.haozhikuan-hbza.com
<Directory “/home/wwwroot/6111”>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost
192.168.5.100:6222>
DocumentRoot “/home/wwwroot/6222”
ServerName bbs.haozhikuan-hbza.com
<Directory “/home/wwwroot/6222”>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

第4步:分别访问网站验证结果:


注意:以上三种情况均在SElinux禁用情况下进行实验的,每次实验最好还原上一次快照,防止配置文件冲突
编辑主配置文件(/etc/httpd/conf/httpd.conf),在主配置文件的末尾按下面格式定义虚拟主机信息,记住这个路径!
Apache的虚拟主机功能的更多相关文章
- 利用主机域名配置Apache的虚拟主机功能
利用主机域名配置Apache的虚拟主机功能,可以减轻服务器为每一个网站分配IP地址的压力.而且根据不同的主机域名可以输出不同的网页内容.要实现此项功能,可以通过修改/etc/host文件来强制定义IP ...
- Apache的虚拟主机功能(基于IP、域名、端口号)
Apache虚拟主机就是在一个Apache服务器上配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录. 主要有三种方法: 1.通过不同的IP地址 2.通过不同的域名 ...
- Apache的虚拟主机功能(基于IP地址、基于虚拟主机、基于端口)
1. 安装Apache服务程序(系统用户,1-199之间) 第一步:在虚拟机软件里选中光盘镜像: 第二步:将光盘设备挂载到/media/cdrom目录 输入:mkdir -p /media/cdrom ...
- win10下关于apache配置虚拟主机
apache安装完默认是不开启虚拟服务器的,如果希望在本地apache上面配置虚拟服务器,类似于在网上买的虚拟主机,可以按照以下步骤进行配置: 1,修改本机的hosts文件,如下 示例:127.0.0 ...
- 解决Apache配置虚拟主机时出现403错误的问题
1.用文本编辑器打开Apache中的httpd.conf,搜索httpd-vhosts.conf,找到“#Include conf/extra/httpd-vhosts.conf”,并把“#”去掉,启 ...
- 虚拟机lamp环境下,Apache配置虚拟主机
1.在Apache配置文件中开启虚拟主机功能:即:Include etc//extra/httpd-vhosts.conf把前面的#去掉: 2.在extra目录下找到文件httpd-vhosts.co ...
- Apache+php+mysql的安装与配置 - 之三(Apache的虚拟主机配置)
Apache+php+mysql的安装与配置 - 之三(Apache的虚拟主机配置) Apache核心(Core)配置 VirtualHost 语法 <VirtualHost addr[:por ...
- Apache和PHP结合、Apache默认虚拟主机
5月28日任务 课程内容: 11.14/11.15 Apache和PHP结合11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 到目前为止虽然安装好了A ...
- Centos7下配置Apache的虚拟主机
一.虚拟主机 虚拟主机是Apache提供的一个功能,通过虚拟主机拉雅在一台服务器上部署多个网站.虽然服务器的IP地址是相同的,但用户当用户使用不同的域名访问时,访问到的是不同的网站. 下面讲解Apac ...
随机推荐
- selenium+testNG自动化测试框架搭建
自动化测试框架搭建 1 Java环境的搭建 1.1访问oracle的官网下载最新版本的jdk http://www.oracle.com/technetwork/java/javase/downloa ...
- ssrf漏洞学习(PHP)
自己最近原本是想深入的学习一下关于xss.csrf的东西的,可是感觉这些东西需要有很好的js的基础来进行学习..还有感觉自己感觉也差不多该要学习内网渗透了..正好ssrf在内网这一块也是比较有用的.于 ...
- 从一道ctf看php反序列化漏洞的应用场景
目录 0x00 first 前几天joomla爆出个反序列化漏洞,原因是因为对序列化后的字符进行过滤,导致用户可控字符溢出,从而控制序列化内容,配合对象注入导致RCE.刚好今天刷CTF题时遇到了一个类 ...
- CountDownLatch源码及Javadoc阅览
/** * A synchronization aid that allows one or more threads to wait until * a set of operations bein ...
- Oracle 编写存储过程并设置定时执行
Oracle 版本:11g PL/SQL 版本:11.0.3.1770 1.如果编写单个存储过程,则直接在procedure新建并编写:如果需要写多个同类功能的存储过程,为了方便管理,可以现在pack ...
- Cocos2d-x 学习笔记(15.2) EventDispatcher 事件分发机制 dispatchEvent(event)
1. 事件分发方法 EventDispatcher::dispatchEvent(Event* event) 首先通过_isEnabled标志判断事件分发是否启用. 执行 updateDirtyFla ...
- cinatra::http框架编译使用
cinatra 一个高效易用的c++ http框架 1.下载源码 https://github.com/qicosmos/cinatra 2. vs2017 编译boost库 [msvc-14.1] ...
- HDU 1532 Drainage Ditches(最大流 EK算法)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1532 思路: 网络流最大流的入门题,直接套模板即可~ 注意坑点是:有重边!!读数据的时候要用“+=”替 ...
- python深拷贝与浅拷贝的区别
可变对象:一个对象在不改变其所指向的地址的前提下,可以修改其所指向的地址中的值 不可变对象:一个对象所指向的地址上值是不能修改的,如果你修改了这个对象的值,那么它指向的地址就改变了,相当于你把这个对象 ...
- 百万年薪python之路 -- 前端CSS基础介绍
一. CSS介绍 CSS定义 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 语法结构 div{ color: green ...