apache虚拟主机配置的三种方式(小结)


Posted in Servers onJuly 23, 2022

记事本打开httpd.conf文件 ,该文件在apache的目录下,如: D:\AppServ\Apache2.2\conf,修改如下两处:

LoadModule vhost_alias_module modules/mod_vhost_alias.so   //去掉前面的#,意思是启用apache的虚拟主机功能,第203行
Include conf/extra/httpd-vhosts.conf  //去掉#的意思是从httpd-vhosts.conf这个文件导入虚拟主机配置

配置虚拟主机后 不能用localhost 访问

只需要把httpd.conf文件的ServerName localhost:80 那行注释掉 就可以了

一、基于IP

假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP:

[root@localhost root]# ifconfig eth0:1 192.168.1.11
[root@localhost root]# ifconfig eth0:2 192.168.1.12
[root@localhost root]# ifconfig eth0:3 192.168.1.13

修改hosts文件,添加三个域名与之一一对应:

192.168.1.11   www.test1.com
192.168.1.12   www.test2.com
192.168.1.13   www.test3.com

建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html

/www/test1/1.html
/www/test2/2.html
/www/test3/3.html

在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

<VirtualHost 192.168.1.11:80>
  ServerName www.test1.com
  DocumentRoot /www/test1/
  <Directory "/www/test1">
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
   </Directory>
</VirtualHost>

<VirtualHost 192.168.1.12:80>
  ServerName www.test1.com
  DocumentRoot /www/test2/
  <Directory "/www/test2">
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
   </Directory>
</VirtualHost>

<VirtualHost 192.168.1.13:80>
  ServerName www.test1.com
  DocumentRoot /www/test3/
  <Directory "/www/test3">
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
   </Directory>
</VirtualHost>

大功告成,测试下每个虚拟主机,分别访问www.test1.com、www.test2.com、www.test3.com

二、基于主机名

设置域名映射同一个IP,修改hosts:

127.0.0.1  gm.998gx.com
127.0.0.1  www.998gx.com
127.0.0.1  r.998gx.com
127.0.0.1  localhost

跟上面一样,建立虚拟主机存放网页的根目录

/www/dxGM/index.php
/www/dxskadmin/index.php
/www/88qp/index.php

在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。 如果服务器上所有的IP地址都会用到, 你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。

下一步就是为你建立的每个虚拟主机设定配置块,的参数与NameVirtualHost指令的参数是一样的。每个定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。

如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

<VirtualHost *:80> 
    DocumentRoot "D:/phpstudy/WWW/dxGM" 
    ServerName gm.998gx.com 
</VirtualHost>

<VirtualHost *:80> 
    DocumentRoot "D:/phpstudy/WWW/88qp" 
    ServerName www.998gx.com 
</VirtualHost>

<VirtualHost *:80> 
    DocumentRoot "D:/phpstudy/WWW/dxskadmin" 
    ServerName r.998gx.com 
</VirtualHost>

<VirtualHost *:80> 
    DocumentRoot "D:/phpstudy/WWW" 
    ServerName localhost 
</VirtualHost>

4. 大功告成,测试下每个虚拟主机,分别访问gm.998gx.com、www.998gx.com、r.998gx.com

三、基于端口

修改配置文件

将原来的
Listen 80
改为
Listen 80
Listen 8080

更改虚拟主机设置:

<VirtualHost 192.168.1.10:80>
    DocumentRoot /var/www/test1/
    ServerName www.test1.com
</VirtualHost>

<VirtualHost 192.168.1.10:8080>
    DocumentRoot /var/www/test2
    ServerName www.test2.com
</VirtualHost>

到此这篇关于apache虚拟主机配置的三种方式(小结)的文章就介绍到这了,更多相关apache虚拟主机配置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
Nginx的rewrite模块详解
Mar 31 Servers
使用nginx动态转换图片大小生成缩略图
Mar 31 Servers
Nginx+Tomcat实现负载均衡、动静分离的原理解析
Mar 31 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
CentOS7和8下安装Maven3.8.4
Apr 07 Servers
Nginx动静分离配置实现与说明
Apr 07 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
Jun 10 Servers
Windows server 2022创建创建林、域树、子域的步骤
Jun 25 Servers
Windows10安装Apache2.4的方法步骤
Jun 25 Servers
centos环境下nginx高可用集群的搭建指南
Jul 23 Servers
ubuntu如何搭建vsftpd服务器
Dec 24 Servers
django项目、vue项目部署云服务器的详细过程
Jul 23 #Servers
Nginx报错104:Connection reset by peer问题的解决及分析
Jul 23 #Servers
centos环境下nginx高可用集群的搭建指南
Nginx如何配置根据路径转发详解
Jul 23 #Servers
Linux中一对多配置日志服务器的详细步骤
Jul 23 #Servers
Nginx如何限制IP访问只允许特定域名访问
Jul 23 #Servers
nginx访问报403错误的几种情况详解
Jul 23 #Servers
You might like
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
python文件操作整理汇总
2014/10/21 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
如何写python的配置文件
2020/06/07 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
综合办公室主任岗位职责
2014/04/13 职场文书
《恐龙》教学反思
2014/04/27 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
单位授权委托书范本
2014/09/26 职场文书
如何写辞职书
2015/02/26 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
Vue3.0 手写放大镜效果
2021/07/25 Vue.js
Mysql如何查看是否使用到索引
2022/12/24 MySQL
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android