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 设置多个站跨域
Mar 09 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
win10安装配置nginx的过程
Mar 31 Servers
Nginx已编译的nginx-添加新模块
Apr 01 Servers
Nginx URL重写rewrite机制原理及使用实例
Apr 01 Servers
Nginx配置Https安全认证的实现
May 26 Servers
Nginx使用Lua模块实现WAF的原理解析
Sep 04 Servers
nginx location 带斜杠【 / 】与不带的区别
Apr 13 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
使用Apache Camel表达REST服务的方法
Jun 10 Servers
kubernetes集群搭建Zabbix监控平台的详细过程
Jul 07 Servers
服务器nginx权限被拒绝解决案例
Sep 23 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
数据库相关问题
2006/10/09 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
php实现简单四则运算器
2020/11/29 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
js opener的使用详解
2014/01/11 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
Python中用max()方法求最大值的介绍
2015/05/15 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
python梯度下降算法的实现
2020/02/24 Python
关于.NET, HTML的五个问题
2012/08/29 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
自我评价怎么写正确呢?
2013/12/02 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
调解协议书
2014/04/16 职场文书
企业职业病防治方案
2014/05/29 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL