资讯专栏INFORMATION COLUMN

Apache虚拟主机域名配置

everfight / 3285人阅读

摘要:虚拟主机域名配置服务器中有两个不同的项目和,我们需要把顶级域名绑定到项目,将二级域名绑定到项目中。域名解析首先,在对服务器进行配置之前,先确保你的域名已经进行正确的解析。主机记录说明要将域名解析为,在主机记录处填写即可。

Apache虚拟主机域名配置

服务器中有两个不同的项目siteA和siteB,我们需要把顶级域名www.siteA.com绑定到项目siteA,将二级域名siteB.siteA.com绑定到项目siteB中。于是,我们使用了基于名称的虚拟主机来进行设置。

域名解析

首先,在对服务器进行配置之前,先确保你的域名已经进行正确的解析。针对以上的情景,我们需要将为顶级域名和二级域名在域名服务商中进行解析(假设服务器IP为121.199.XXX.XXX):

主机记录 记录值(IP)
siteB 121.199.XXX.XXX
www 121.199.XXX.XXX

验证是否解析成功,可以在浏览器输入www.siteA.com/siteA 和 siteB.siteA.com/siteB,查看是否可以访问到相应服务器。

服务器配置

我们的服务器系统为ubuntu12,apache的web服务器,下面以该系统为基础对服务器配置进行说明:

(1)安装好apache以后默认有一个叫default的虚拟主机。在 /etc/apache2/sites-enabled中,存在一个000-default 的软链接文件,实际连接的是 /etc/apache2/sites-available 目录中的 default 文件,这是一个默认的配置文件,它指向的是服务器的站点根目录/var/www,我们可以模仿该配置文件创建两个新的虚拟主机。

(2)复制虚拟主机的默认配置文件,siteA的虚拟主机名称为www.siteA.com,siteB的虚拟主机名称为siteB.siteA.com,

    $ copy /etc/apache2/site-available/default  /etc/apache2/site-available/www.siteA.com
    $ copy /etc/apache2/site-available/default  /etc/apache2/site-available/siteB.siteA.com

复制好后,我们打开www.siteA.com的配置文件,将其修改为如下:


ServerName www.siteA.com
ServerAdmin admin@email.com

DocumentRoot /var/www/siteA

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
# This directive allows us to have apache2"s default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


ErrorLog /var/log/apache2/siteA_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/siteA_access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128


主要更改有以上内容,具体的含义如下:
ServerName www.siteA.com:设置虚拟主机的域名,www.siteA.com可以是你注册的任何域名
ServerAdmin admin@mail.com:设置该虚拟主机网管员的邮件
DocumentRoot /var/www/siteA:设置该虚拟主机的主目录路径
ErrorLog /var/log/apache2/siteA_error.log:设置该虚拟主机的出错信息
CustomLog /var/log/apache2/siteB_access.log combined:设置该虚拟主机的访问信息

保存好后,启用站点,重启apache。

$ sudo a2ensite www.siteA.com

这时在/etc/apache2/sites-enabled 中会有指向www.siteA.com配置文件的软连接。

$ sudo /etc/init.d/apache2 restart

现在查看是否绑定成功,在浏览器中输入 www.siteA.com,看看是否自动访问 服务器中 的项目siteA的index文件,如果是,则说明绑定成功。

二级域名的设置

二级域名siteB.siteA.com的绑定方式跟上面一样,修改配置文件


ServerName siteB.siteA.com
ServerAdmin admin@email.com

DocumentRoot /var/www/siteB

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
# This directive allows us to have apache2"s default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


ErrorLog /var/log/apache2/siteB_error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/siteB_access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128


启用站点,重启apache

$ sudo a2ensite siteB.siteA.com
$ sudo /etc/init.d/apache2 restart

完成后,在浏览器中输入 siteB.siteA.com,查看是否自动访问到 siteB/index. 中。

注意:绑定域名后,项目代码中的路径访问和跳转最好不要绝对路径,例如如果代码中使用重定向到 http://serverName/siteA/login...,当使用域名访问时,会跳转到http://www.siteA.com/siteA/lo...,这时候会出现 404 NOT FOUND的错误,因为www.siteA.com已经绑定了siteA的目录,这时候它会去访问siteA/siteA/login.php的文件,该文件其实是在siteA/login.php目录下的。

如果你想要停用以上的站点,可以使用命名:

$ sudo a2dissite www.siteA.com
$ sudo a2dissite siteB.siteA.com

重启apache后,域名绑定就会被取消了。
具体原理说明可以参考:http://wiki.ubuntu.org.cn/Apa...

附注说明:
域名解析的“记录类型”说明:

记录类型 说明
搭建网站 要将域名指向主机服务商提供的IP地址,请选择「A记录」;要将域名指向主机服务商提供的另一个域名,请选择「CNAME记录」。
建立邮箱 需要设置「MX记录」,根据邮箱服务商提供的MX记录填写。
A记录 将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
CNAME记录 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录
MX记录 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录
NS记录 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录 可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用
AAAA记录 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
SRV记录 记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)
显性URL 将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将www.net.cn显性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址为:www.hichina.com)。
隐性URL 与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将www.net.cn隐性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址仍然为:www.net.cn)。

“主机记录”说明:
要将域名example.com解析为www.example.com,在主机记录(RR)处填写www即可。
主机记录就是域名前缀,常见用法有:

主机记录类型 说明
www 将域名解析为www.example.com,填写www;
@ 将域名解析为example.com(不带www),填写@或者不填写;
mail 将域名解析为mail.example.com,通常用于解析邮箱服务器;
* 泛解析,所有子域名均被解析到统一地址(除多带带设置的子域名解析);
二级域名 如:mail.example.com或abc.example.com,填写mail或abc;
手机网站 如:m.example.com,填写m。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/35881.html

相关文章

  • wamp非集成安装

    摘要:新到公司首先就是自己搭建开发环境,原来一直用,被它的默认配置坑了的字符集要改为,所以自己做自己的配置非集成环境,下面安装路径可以进行参考一创建目录目录下再创建三个目录二安装我没写的代表默认,直接下一步就可以根目录配置默认根目录是在,现在改为 新到公司首先就是自己搭建开发环境,原来一直用phpstudy,被它的默认配置坑了【mysql的my.ini字符集要改为utf8】,所以自己做自己的...

    xiaoqibTn 评论0 收藏0
  • Apache虚拟主机配置

    摘要:前言虚拟主机配置有中方法基于配置基于域名配置和基于端口配置,在一个服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。 前言:Apache虚拟主机配置有3中方法:基于IP配置、基于域名配置和基于端口配置,在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。 一、基于域名配置 1...

    Rainie 评论0 收藏0
  • MacOS 下 XAMPP配置基于域名虚拟主机

    摘要:第一步在的打开文件然后搜索去掉前边的注释符号第二步在的打开文件打开了配置虚拟主机的文件后就可以配置你需要的虚拟主机了。 第一步 在 MAC 的 /Applications/XAMPP/xamppfiles/etc 打开 httpd.conf 文件. 然后搜索 httpd-vhosts.conf 去掉前边的 # 注释符号 showImg(https://segmentfault.com/...

    高胜山 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<