如何实现Apache HTTP服务器配置多个域名绑定的问题

原创 小智  2020-11-18 19:41  阅读 1,822 次

配置一台服务器的时候,如果只运行一个站点,往往过于浪费资源,那么同一个主机放置多个站点(基于主机名的虚拟主机,即共享IP的虚拟空间)是个非常不错的方法。Apache HTTP服务器通过修改Apache的配置文件httpd.conf来实现多个站点同时运行。配置虚拟主机的方式主要有两种,一种是多个不同端口对应的多个虚拟主机站点,一种是同一端口对应多个不同域名的虚拟主机站点。这里以80端口为例,在Apache配置多个不同域名虚拟主机。

Apache HTTP服务器配置多个域名(虚拟主机)绑定的操作步骤

1、修改Apache配置文件:打开Apache的安装目录,找到 conf\httpd.conf 文件(如:D:\AMP\Apache24\conf\httpd.conf)。找到下面三处地方进行修改:

#LoadModule vhost_alias_module modules/mod_vhost_alias.so,去掉最前面的“#”来启用apache的虚拟主机功能。

将DocumentRoot和Directory的路径,修改为站点目录的上一级目录。例如站点放在D:/wwwroot/www1,则改为以下形式:
DocumentRoot "D:/wwwroot"
<Directory "D:/wwwroot">

#Include conf/extra/httpd-vhosts.conf,去掉前面的“#”。意思是从httpd-vhosts.conf这个文件导入虚拟主机配置
Listen ?要监听的端口

多个端口,要写多个Listen;否则Apache启动的时候,不会启动相应的接口。

在Apache配置文件 conf\httpd.conf 中添加。比如:

  • Listen 80
  • Listen 8080

2、添加虚拟主机:找到 conf/extra/httpd-vhosts.conf 文件(如:D:\AMP\Apache24\conf\extra\httpd-vhosts.conf),修改虚拟目录配置,在文件的末尾处添加如下信息。(注:顺序绝不可以乱,127.0.0.1这组必须为第一组,否则会出现localhost不能访问的问题)

//添加虚拟主机
<VirtualHost *:80>
    DocumentRoot "D:/wwwroot/htdocs"
    ServerName   127.0.0.1
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "D:/wwwroot/test"  //站点文件的路径
    ServerName test.com     //站点绑定的域名
    ErrorLog "logs/test.com-error.log"
    CustomLog "logs/test.com-access.log" common
</VirtualHost>

PS:设置格式的注意事项,需要说明的是一般除了设置serverName和DocumentRoot外,还需要对目录进行设置,即<Directory></Directory>的东西(可以写在虚拟空间配置还可写在配置文件httpd.conf中)。否则会出现无权限访问之类的问题,其他参数诸如错误日志、用户访问信息、别名设置等可以设置也可以省略。

<VirtualHost *:80>
    ServerName www.myweb1.com
    DocumentRoot "D:/wwwroot"
    <Directory "D:/wwwroot">
        Order deny,allow
        Allow from all
    </Direcotry>
</VirtualHost>

3、修改完配置文件后,记得一定要重启apache,否则修改是不会起到作用的。

出现 HTTP 错误 403 Forbidden — 禁止访问解决办法

错误提示:HTTP 错误 403 - 禁止访问,即403 Forbidden:You don't have permission to access / on this server.

出现HTTP错误403 Forbidden

解决方法:打开apache的配置文件httpd.conf(如:D:\AMP\Apache24\conf\httpd.conf),逐行检查。找到:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all  //此处“Deny from all”为拒绝一切连接。把此行修改为“Allow from all”,即可解决问题。
</Directory>
403 Forbidden主要原因分析
  • 你的IP被列入黑名单
  • 你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了;
  • 网站域名解析到了空间,但空间未绑定此域名;
  • 你的网页脚本文件在当前目录下没有执行权限;
  • 在不允许写/创建文件的目录中执行了创建/写文件操作;
  • 服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽;
注意事项
  • 注意安装目录不同,配置文件的目录也不相同。
  • 编辑httpd-vhosts.conf文件时,127.0.0.1的配置必须写在第一组,否则localhost作为域名访问站点时会提示not found。
  • httpd-vhosts.conf文件配置VirtualHost,或者直接在httpd.conf中写配置也可以,但不建议这么做。
本文地址:http://aszhi.com/server/50.html
关注我们:请关注一下微信号:扫描二维码爱思智前端的微信号
版权声明:本文为原创文章,版权归 小智 所有,欢迎分享本文,转载请保留出处!

发表评论


表情