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 相关文章推荐
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
Jun 21 Servers
nginx如何将http访问的网站改成https访问
Mar 31 Servers
Nginx + consul + upsync 完成动态负载均衡的方法详解
Mar 31 Servers
扩展多台相同的Web服务器
Apr 01 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
基于Apache Hudi在Google云构建数据湖平台的思路详解
Apr 07 Servers
阿里云 Windows server 2019 配置FTP
Apr 28 Servers
Nginx 匹配方式
May 15 Servers
ubuntu下常用apt命令介绍
Jun 05 Servers
使用Apache Camel表达REST服务的方法
Jun 10 Servers
云服务器部署 Web 项目的实现步骤
Jun 28 Servers
Nginx 502 bad gateway错误解决的九种方案及原因
Aug 14 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实现批量下载百度云盘文件例子分享
2014/04/10 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
javascript 冒号 使用说明
2009/06/06 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
机械工程师求职自我评价
2013/09/23 职场文书
捐款倡议书
2014/04/14 职场文书
安全生产责任书范本
2014/04/15 职场文书
班干部演讲稿
2014/04/24 职场文书
单位消防安全责任书
2014/07/23 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers