漂亮蓝影 发表于 2017-12-25 14:45:32

Apache服务器在80端口配置多域名虚拟主机的方法

  我们在配置一台服务器的时候,如果只运行一个站点,往往过于浪费资源。Nginx和Apache都可以通过配置虚拟主机实现多站点。配置虚拟主机的方式主要有两种,一种是多个不同端口对应的多个虚拟主机站点,一种是同一端口对应多个不同域名的虚拟主机站点。这里我用80端口为例,在apache配置多个不同域名虚拟主机。
  试验环境:windows+apache (linux+apache同理)
  1、虚拟机需要用到Rewrite,所以先编辑Apache的conf目录下的httpd.conf文件
  掉Rewrite模块列行中前面的#号(删除注释)。添加mod_rewrite.so模块支持。
  LoadModule rewrite_module modules/mod_rewrite.so
  同时,还要让主配置文件包含虚拟机配置文件:
  找到 #Include conf/extra/httpd-vhosts.conf 这一行去掉前面的 # 。
  2、然后编辑 /conf/extra/httpd-vhosts.conf 文件:
  (1)如果里面有默认的设置,删除里面默认设置的虚拟主机,我这里是以下这段代码:
  <VirtualHost _default_:80>
  DocumentRoot "/Apache24/htdocs"
  #ServerName www.example.com:80
  </VirtualHost>
  (2)修改NameVirtualHost参数,要在本机的所有IP的80端口上面做多域名:NameVirtualHost *:80
  (3)添加虚拟主机一:
  <VirtualHost *:80>
  #管理员邮箱
  ServerAdmin xxx@163.com
  #虚拟主机根目录   
  DocumentRoot "E:/www/slg/"      
  #虚拟主机名
  ServerName www.slg.com   
  #虚拟主机别名                     
  ServerAlias slg.com
  #日志路径
  ErrorLog "logs/slg-error.log"
  CustomLog "logs/slg-access.log" common
  RewriteEngine on
  </VirtualHost>
  (4)添加虚拟主机二:
  <VirtualHost *:80>
  #管理员邮箱
  ServerAdmin xxx@163.com
  #虚拟主机根目录   
  DocumentRoot "E:/www/sanguo/"      
  #虚拟主机名
  ServerName www.sanguo.com   
  #虚拟主机别名                     
  ServerAlias sanguo.com
  #日志路径
  ErrorLog "logs/sanguo-error.log"
  CustomLog "logs/sanguo-access.log" common
  RewriteEngine on
  </VirtualHost>
  (5)保存退出
  3、修改本地hosts文件:
  在windows中,进入C:/Windows/System32/drivers/etc (在linux环境中应该是在/etc/hosts)
  打开host文件,在最后面添加下面两行:
  127.0.0.1       www.slg.com
  127.0.0.1       www.sanguo.com
  保存退出
  4、重启服务器。
  在你两个虚拟机的根目录下新建一些测试文件,比如在”E/www/slg/”目录新建个test.html,在目录"E:/www/sanguo/"页新建个test.html,写上对应的测试代码,在浏览器里输入www.slg.com/test.html和www.sanguo.com/test.html查看结果。
页: [1]
查看完整版本: Apache服务器在80端口配置多域名虚拟主机的方法