网络资源分享、专业技术教程,优惠活动分享,新闻及日常信息,豆芽文化让生活更加精彩!

首 页文章资讯下载中心投稿方式

栏目分类:
  • QQ活动
  • 网络活动
  • 羊毛现金
  • 技术教程
  • 当前位置:首页 > 活动资讯 > 技术教程

    Apache服务器配置多个站点的方法(基于主机名)

    时间:2019-1-20 23:51:12 分类:技术教程 人气: 7 编辑:网络
    一个ip地址放置多个站点(基于主机名的虚拟主机,即共享IP的虚拟空间),简单的来说呢,就是通过apache的虚拟主机进行实现的。下面我们看一下具体的操作步骤:

    1.找到apache配置文件:httpd.conf
    关于apache的配置文件,不同的linux主机可能放置在不同的地方,尤其对于那些编译安装的环境来说,放置的位置就更加不固定了,找到httpd.conf用编辑器打开。

    打开Apache的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。  
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    去掉#意思是启用apache的虚拟主机功能。  
    Include conf/extra/httpd-vhosts.conf  
    去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置。打开它就可以在httpd-vhosts.conf文件里写虚机配置,而不是一定要在 httpd.conf 里面写了。直接在httpd.conf中写配置也可以,但不建议这么做。
    2.修改配置文件,添加虚拟主机
    查找如下的配置信息:

    #<VirtualHost *:80>
    # ServerAdmin webmaster@dummy-host.example.com
    # DocumentRoot /www/docs/dummy-host.example.com
    # ServerName dummy-host.example.com
    # ErrorLog logs/dummy-host.example.com-error_log
    # CustomLog logs/dummy-host.example.com-access_log common
    #</VirtualHost>

    上面的这段配置信息就是apache为我们提供的添加虚拟主机的模板,你可以选择在原来的基础上进行修改,也可以按着这个模板自己添加,通常也是整个文件的末尾处添加如下信息:

    <VirtualHost *:80>
    # ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/web/wordpress
    ServerName www.mr-c.cn
    ErrorLog logs/www.mr-c.cn-error_log
    CustomLog logs/www.mr-c.cn-access_log common
    </VirtualHost>

    <VirtualHost *:80>
    # ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/web/wosn
    ServerName www.wosn.net
    ErrorLog logs/www.wosn.net-error_log
    CustomLog logs/www.wosn.net-access_log common
    </VirtualHost>

    在这里我们用到的是沃森本人的两个域名www.wosn.net和www.mr-c.cn,在实际应用中将其替换为自己的域名。当然,如果你要配置更多的站点,可以参考这样的方式继续添加,我们用两个站点作为说明。

    以域名www.wosn.net为例,需要说明一个问题,如果你在解析域名的时候将www.wosn.net和wosn.net都进行了解析,这个时候你访问wosn.net的时候可能访问到的是www.mr-c.cn这个站点而不是www.wosn.net,这该怎么办呢?我们可以在配置文件中再添加一个虚拟主机,即在配置文件添加:

    <VirtualHost *:80>
    # ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/web/wosn
    ServerName wosn.net
    ErrorLog logs/www.wosn.net-error_log
    CustomLog logs/www.wosn.net-access_log common
    </VirtualHost>

    3.配置完成,重启apache
    修改完配置文件后,记得一定要重启apache,否则修改是不会起到作用的,这是很多刚上手的人员最容易忽略的问题。
    这样,一个apache服务器放置多个站点的配置工作就完成了,希望对大家有所帮助!
    出现 HTTP 错误 403 - 禁止访问解决办法
    HTTP 错误 403 - 禁止访问,即403 Forbidden:You don't have permission to access / on this server.
    可能是权限不足引起的问题。

    解决方法:
    打开apache的配置文件httpd.conf,逐行检查。找到:
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    </Directory>
    此处“Deny from all”为拒绝一切连接。

    把此行修改为 “Allow from all”,即可解决问题。

    修改后的代码为:
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
    </Directory>
    再在浏览器里打开,显示it works!问题解决。

    403 Forbidden主要原因分析
    1、你的IP被列入黑名单
    2、你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了;
    3、网站域名解析到了空间,但空间未绑定此域名;
    4、你的网页脚本文件在当前目录下没有执行权限;
    5、在不允许写/创建文件的目录中执行了创建/写文件操作;
    6、服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽;

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

    以上方法也可以写在虚拟空间配置<VirtualHost *:80>....</VirtualHost>中间,如下格式:
    <VirtualHost *:80>
     #ServerAdmin admin@myxzy.com
     ServerName dummy-host.example.com?
     DocumentRoot "g:/www2"
     DirectoryIndex?index.html?index.php??
     ServerAlias?www.dummy-host.example.com??
     <Directory "g:/www2">
     Options FollowSymLinks
     AllowOverride All
     Require all granted
     </Directory> 
    </VirtualHost>

    Apache VirtualHost配置
    以lampp环境为例子,其他环境只是配置文件的路径不同。
    先要在 ? lampp/etc/httpd.conf ( 这个是Apache 总的配置文件)中,将虚拟路径的注释去掉。

    #Include etc/extra/httpd-vhosts.conf
    使httpd-vhosts.conf文件起作用,或者直接在httpd.conf中写配置也可以,但不建议这么做。
    相关的配置有:Listen ?NameVirtualHost ?<VirtualHost>

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

    比如:
    Listen 80
    Listen 8080

    2. NameVirtualHost 如果没有这个,<VirtualHost>标签就没什么作用。(新版已废除)
    (这里特指基于域名访问的情况,若是基于IP访问的,以第一个指定IP的VirtualHost为准,每个IP可以单独指定)

    一个NameVirtualHost 可以对用多个<VirtualHost>,每个<VirtualHost>必须有自己的NameVirtualHost(我猜的);

    NameVirutalHost *:80
    制定这个主机的IP和端口,如果服务器上有多个IP,就可以制定某个IP的某个端口是哪个主机。
    (新版的Apache已经去除了NameVirtualHost 这个配置,因为确实没什么用,参数在VirtualHost中都已经指明了)

    3. 最关键的VirtualHost

    重要:Apache 在接受到请求时,首先会默认第一个VirtualHost,然后再找匹配的,如果没有匹配的,就是第一个VirtualHost起作用。

    因此在httpd.conf中,将<Dicrectory />(这个是所有目录的默认配置)和 <Direcotry /opt/lampp/htdocs>的权限,都是deny from all.作为默认。

    所以,我的第一个VirtualHost是
    <VirtualHost *:80>
    ServerName *
    DocumentRoot </opt/lampp/htdocs/guest>
    <Directory /opt/lampp/htdocs/guest>
    Order deny,allow
    Allow from all
    </Direcotry>
    <VirtualHost/>

    后面的,依次添加就可以
    <VirtualHost *:80>
    ServerName www.myweb1.com
    DocumentRoot </opt/lampp/htdocs/myweb1>
    <Directory /opt/lampp/htdocs/myweb1>
    Order deny,allow
    Allow from all
    </Direcotry>
    <VirtualHost/>

    nginx虚拟主机配置是在vhost.conf文件;
    标签:服务器配置 多个站点 

    相关文章

    相关评论

    关于我们 - 广告合作 - 我要投稿 - 网站地图 - 发展历程 - 站内留言 - 

    Copyright www.kcs2.top 豆芽文化 版权所有 All Rights Reserved. 皖ICP备