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

目录
  • 一、基于IP
  • 二、基于主机名
  • 三、基于端口

记事本打开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虚拟主机配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何配置apache虚拟主机的实例小结

    1.基于ip地址的虚拟主机 复制代码 代码如下: Listen 80<VirtualHost 172.20.30.40>    DocumentRoot /home/httpd/html1    ServerName www.ok1.com    ErrorLog /usr/local/apache/logs/error1_log    CustomLog /usr/local/apache/logs/access1_log combined</VirtualHost><Vi

  • linux apache下虚拟主机配置方法

    假设VPS的IP是58.130.17.168,有两个域名指向该IP,分别是domain1.com, domain2.com, 修改/etc/httpd/conf/httpd.conf,在文件的最后加入: ServerName 58.130.17.168 NameVirtualHost 58.130.17.168 <VirtualHost 58.130.17.168> ServerName domain1.com DocumentRoot /var/www/domain1.com <Dir

  • apache的多站点虚拟主机配置方法

    例:主机IP是:192.168.1.1 你的主机上有三个域名: www.a.com    网页文件放在E:\web\www\1 www.b.com    网页文件放在E:\web\www\2 www.c.com    网页文件放在E:\web\www\3 在apache的httpd.conf中加入 #设置不同的域名到不同的目录 NameVirtualHost 192.168.1.1 <VirtualHost 192.168.1.1>   DocumentRoot "E:\web\ww

  • windows apache多端口虚拟主机配置方法

    1.打开httpd.conf,查找Listen:80,在下面一行加入Listen:8080:2.查找#Include conf/extra/httpd-vhosts.conf,将此行前面的#去掉:3.打开httpd.conf文件目录下面的extra文件夹下面的httpd-vhosts.conf文件:4.查找NameVirtualHost *:80,在下面一行增加NameVirtualHost *:8080:5.复制httpd-vhosts.conf文件最下面的如下代码,并且在下面粘贴一份: 复制

  • Apache 多站点虚拟主机配置方法

    修改配置文件 conf/httpd.conf 1.加入下面两句 NameVirtualHost *:80 Include conf/vhosts 2.在conf目录中建立vhosts目录 然后在 vhosts 目录下面建立相应的站点配置文件 如建立 hhj.jb51.net.conf 文件 内容: 复制代码 代码如下: <VirtualHost *:80> ServerAdmin hhj@live.it ServerName www.hhj.jb51.net ServerAlias hhj.j

  • apache虚拟主机中设置泛域名解析的方法

    1.支持多域名 例如,让mail.jbxue.org.smtp.jbxue.org.pop3.jbxue.org 都指向同一个虚拟主机,可以写成: 复制代码 代码如下: ServerName mail.jbxue.orgServerAlias smtp.jbxue.org pop3.jbxue.org ServerName 用于指定首选域名,其他的域名用ServerAlias指定,并用空格区分即可. 2.支持泛域名解析ServerAlias 可支持扩展符,例如,我们希望 xx.a.com 下的所

  • Apache 配置多端口 多虚拟主机 局域网访问示例

    一.在\wamp\bin\apache\Apache2.4.4\conf\extra\httpd-vhosts.conf 修改如下 复制代码 代码如下: NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "E:/website/pxsj" ServerName host7.com ServerAlias 192.168.1.116 <Directory "E:/website/pxsj">

  • 本地机apache配置基于域名的虚拟主机详解

    1.打开apache的httpd.conf文件,找到# Virtual hosts#Include conf/extra/httpd-vhosts.conf这一段把Include conf/extra/httpd-vhosts.conf前面的"#"去掉. 2.修改位于(win7)c:/windows/system32/drivers/etc/目录下的hosts文件增加一段:127.0.0.1    x.acme.com(你用来访问的域名) 3.我用的是wamp包,所以到c:/wamp/

  • apache配置虚拟主机的方法详解

    1.apache配置文件中打开vhost的配置LoadModule vhost_alias_module modules/mod_vhost_alias.soInclude conf/extra/httpd-vhosts.conf 2.extra目录中的httpd-vhosts.conf里面进行配置,有三个:第一个DocumentRoot,项目的绝对目录,后面以/结尾:第二个是ServerPath,与DocumentRoot一致:第三个是ServerName,自己在浏览器中输入的域名.如:tes

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

    目录 一.基于IP 二.基于主机名 三.基于端口 记事本打开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.con

  • Nginx 虚拟主机配置的三种方式(基于域名)

    Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置. 详解Nginx 虚拟主机配置的三种方式(基于IP) https://www.jb51.net/article/149774.htm 详解Nginx 虚拟主机配置的三种方式(基于端口) https://www.jb51.net/article/14978.htm 3.Nginx基于域名的虚拟主机配置 使用基于域名的虚拟主机配置是比较流行的方式,可以在同一个IP上配置多个域名并且都通过80端

  • 详解Nginx 虚拟主机配置的三种方式(基于IP)

    Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置. 详解Nginx 虚拟主机配置的三种方式(基于端口) https://www.jb51.net/article/14977.htm 详解Nginx 虚拟主机配置的三种方式(基于域名) https://www.jb51.net/article/14978.htm 1.基于IP的虚拟主机配置 如果同一台服务器有多个IP,可以使用基于IP的虚机主机配置,将不同的服务绑定在不同的IP上. 1.1

  • 详解Nginx 虚拟主机配置的三种方式(基于端口)

    Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置. 详解Nginx 虚拟主机配置的三种方式(基于IP) https://www.jb51.net/article/14974.htm 详解Nginx 虚拟主机配置的三种方式(基于域名) https://www.jb51.net/article/14978.htm 2.Nginx基于端口的虚拟主机配置 如一台服务器只有一个IP或需要通过不同的端口访问不同的虚拟主机,可以使用基于端口的虚拟主机配

  • SpringBoot配置 Druid 三种方式(包括纯配置文件配置)

    记录一下在项目中用纯 YML(application.yml 或者 application.properties)文件.Java 代码配置 Bean 和注解三种方式配置 Alibaba Druid 用于监控或者查看 SQL 状况: 1. 纯配置文件 .yml 或者 .properties (1)pom.xml 添加相关依赖 <!-- SPRINGBOOT WEB --> <dependency> <groupId>org.springframework.boot<

  • Spring配置数据源的三种方式(小结)

    目录 一.前言 三.开发数据源的方式 方式1:手动输入 方式2:Properties配置文件 方式3:Spring配置数据源 四.总结 一.前言 今天学习了用spring配置Druid数据源的三种方式,整理了学习笔记,希望大家喜欢! 二.数据源的作用 数据源(连接池)是提高程序性能如出现的 事先实例化数据源,初始化部分连接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 常见的数据源:DBCP.C3P0.BoneCP.Druid等等,本文主要以Druid数据源为案例实现Spr

  • 详解Spring获取配置的三种方式

    目录 前言 Spring中获取配置的三种方式 通过@Value动态获取单个配置 通过@ConfigurationProperties+前缀方式批量获取 通过Environment动态获取单个配置 总结 前言 最近在写框架时遇到需要根据特定配置(可能不存在)加载 bean 的需求,所以就学习了下 Spring 中如何获取配置的几种方式. Spring 中获取配置的三种方式 通过 @Value 方式动态获取单个配置 通过 @ConfigurationProperties + 前缀方式批量获取配置 通

  • Maven打jar包的三种方式(小结)

    不包含依赖jar包 该方法打包的jar,不包含依赖的jar包,也没有指定入口类. <build> <plugins> <plugin> <!-- 指定项目编译时的java版本和编码方式 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.

  • mybatis-plus update更新操作的三种方式(小结)

    目录 1.@ 根据id更新 2.@ 条件构造器作为参数进行更新 3.@ lambda构造器 mybatisplus update语句为null时没有拼接上去 1.@ 根据id更新 User user = new User(); user.setUserId(1); user.setAge(29); userMapper.updateById(user); 2.@ 条件构造器作为参数进行更新 //把名字为rhb的用户年龄更新为18,其他属性不变 UpdateWrapper<User> updat

  • MySQL复制表的三种方式(小结)

    复制表结构及其数据 下面这个语句会拷贝数据到新表中. 注意:这个语句其实只是把select语句的结果建一个表,所以新表不会有主键,索引. create table table_name_new as (select * from table_name_old); 只复制表结构 create table table_name_new as select * from table_name_old where 1=2; 或者 create table table_name_new like tabl

随机推荐