apache虚拟主机怎样配置

2023-12-07 16:46:36 百科 悟空
  1、httpd.conf文件的修改
  我们首先打开appserv的安装目录,找到httpd.conf文件,把下面代码前面的#号去掉,去掉#意思是启用apache的虚拟主机功能。
  [plain] view plaincopy
  #LoadModule vhost_alias_module modules/mod_vhost_alias.so
  [plain] view plaincopy
  #Include conf/extra/httpd-vhosts.conf
  而去掉这一行#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置
  2、httpd-vhosts.conf修改方法
  [plain] view plaincopy
  NameVirtualHost *:80
  <VirtualHost *:80>
  ServerAdmin webmaster@dummy-host.www.phpStudy.net

  DocumentRoot "C:/Program Files/Apache2/docs/dummy-host.www.phpStudy.net"


  ServerName dummy-host.www.phpStudy.net
  ServerAlias www.dummy-host.www.phpStudy.net
  ErrorLog "logs/dummy-host.www.phpStudy.net-error.log"
  CustomLog "logs/dummy-host.www.phpStudy.net-access.log" common
  </VirtualHost>
  NameVirtualHost *:80
  注意事项
  1:NameVirtualHost 是指定虚拟主机所使用的IP地址或域名,可以定义多个。但是是IP地址。
  2:每个NameVirtualHost定义的参数至少要有一个<VirtualHost>相匹配。
  3:如果有来自80端口的请求,而所请求的域名没有被配置为虚拟主机,那将指向个虚拟主机。这样主服务器将无法收到来自80端口的任何请求。因此,要为主服务器配置一个虚拟主机。
  ServerAdmin 管理员邮箱
  DocumentRoot 网站目录 (注意:如果网站目录中的路径有空格,请在路径两端加上双引号)
  ServerName 要绑定的域名(必填)
  ServerAlias 要绑定的虚拟主机的别名。(可选,如果多个域名,中间以空格分隔,如果没有,则去掉该行)
  CustomLog 用户日志文件(可选,如果不需要,则去掉该行)
  ErrorLog 错误日志(可选,如果不需要,则去掉该行)
  3、"_default_"虚拟主机使用教程
  [plain] view plaincopy
  <VirtualHost _default_:*>
  DocumentRoot /www/default
  </VirtualHost>
  该虚拟主机将接管与其它虚拟主机IP和端口不匹配的请求。如此一来,主服务器将不会处理任何请求。所以要把主服务器配置成一个虚拟主机。
  [plain] view plaincopy
  <VirtualHost 158.29.33.248>
  ProxyPreserveHost On
  ProxyPass /foo/no !
  ProxyPass /foo http://192.168.111.2
  ProxyPassReverse /foo http://192.168.111.2
  ServerName hostname.example.com
  </VirtualHost>
  注意事项
  1、首先这是一个基于IP的虚拟主机,它接收并处理对IP地址158.29.33.248的请求。
  2、ProxyPass /foo http://192.168.111.2 将把对http://158.29.33.248/foo的请求转换为一个代理请求,该请求指向http://192.168.111.2。
  3、ProxyPass /foo/no ! 不代理针对/foo/no的请求。这个必须放在正常代理指令之前。
  4、ProxyPreserveHost On 意思是传送原始请求的Host信息给被代理的机器。
  4、配置实例教程
  一个项目数据应用,为了防止由于域名解析问题导致不能正常访问,因此采用IP的方式访问接口。apache虚拟主机的配置如下:
  1、在httpd.conf中Listen 80下面增加一行,内容为:Listen 8080,即监听8080端口
  2、配置虚拟主机配置
  [plain] view plaincopy
  #NameVirtualHost 61.122.3.6:8080 这一行可以不需要。经测试,基于IP地址的虚拟主机可不用设置NameVirtualHost项。
  <VirtualHost 61.122.3.6:8080>
  ServerAdmin webmaster@dummy-host.www.phpStudy.net
  DocumentRoot "d:/web/openj"
  </VirtualHost>

发表评论: