配置apache + tomcat 绑定泛域名

转载 2011年01月10日 11:50:00

转载于:

http://blog.csdn.net/antitest/archive/2008/01/27/2067975.aspx

 

前段时间,写了关于如何将Apache与tomcat整合起来一起提供服务,Apache提供静态网页的访问支持,tomcat则提供动态页面如jsp,servlet的支持能力。
这几天有一个同仁在邮件里面问我关于如何配置apache + tomcat 绑定泛域名,这几天也考完试了,所以就整理整理了思维,开始解决这个问题。
在解决之前,需要对几个概念作一些解释:什么是泛域名
比如说你有一个域名:yuan.hust 那么,你希望所有的以yuan.hust结尾的URL都指向同一个地方,比如说你的主网是
www.yuan.hust,你希望你的test.yuan.hust,test2.yuan.hust 也都
指向
www.yuan.hust,这个就是泛域名解析,即 *.域名 解析到同一独立IP,在域名前添加任何子域名,均可访问到所指向的WEB地址。
OK,现在知道了什么是泛域名解析了,我们现在开始来进行泛域名解析的工作。
要完成泛域名解析,需要我们做两个方面的工作,第一方面,域名那部分的处理,第二方面,就是服务器的处理。
在域名的管理部分,要对域名进行泛域名解析的设置,这个是在你申请的域名服务那里进行操作。各个服务商的操作可能不太会一样,但其核心都是一致的,即将*.你的域名 映射到你的服务器的IP。
上一部分完成之后,就开始了下一部分的工作,如何对Apache服务器进行设置,让其能够满足泛域名解析。在这里还要提到一点,这里实现泛域名解析与TOMCAT的关系不大。APACHE与TOMCAT的配合在之前的文章已经讲过,配合的核心就是设置什么样的请求会转交给TOMCAT进行处理,所以这里基本就不再提TOMCAT。
要对Apache进行泛域名设置,那么就要先了解如何对Apache进行域名绑定。这里先解释一样,什么是域名绑定。
域名绑定通俗的讲,就是将你的域名与你的服务器绑定到一起。比如说,你有两个域名
www.yuana.com  www.yuanb.com,但是,你只有一台服务器,这个服务器只有一个IP,那么如何做到www.yuana.com访问到的是你设置的a网站,www.yuanb.com访问到的是你设置的b网站呢? 在域名管理的时候,设置域名的时候,只是将一个域名和一个IP绑定到一起,你访问www.yuana.com与访问www.yuanb.com都是指向的同一个IP,你如何保证其访问到的是不同的站点? 这个就是域名绑定的问题了。当然,要做到域名绑定,还需要做另外一个事情,那就是在Apache中建立虚拟主机,当建立虚拟主机的时候,将域名与你建立的虚拟主机进行对应,那么就可以做到域名绑定了。这个过程的基本思想就是:
浏览器访问URL->域名服务器对URL进行解析,找到对应的IP,向对应IP的机器发送请求->Apache服务器接收到请求,分析URL,找到对应的虚拟主机->访问完成
现在原理基本上清楚了,我们开始进行虚拟主机与域名绑定的操作,其实挺简单,几句话就搞定。
我是在UBANTU下面进行的操作,之前在WINDOWS下面,那个配置文件太散乱了,并不如LINUX下面清楚,这也是网上曾经有个兄弟说Apache泛域名解析不成功的一个重要原因(在这里,也小鄙视下微软这个垃圾)。
在UBANTU下面,打开 /etc/apache2/sites-available/default 文件,这个文件就是对于Apache的虚拟主机进行配置的文件。
里面内容如下:
NameVirtualHost *
<VirtualHost *>
    ServerAdmin
webmaster@localhost
    DocumentRoot /var/www/
    ServerName localhost
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        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
                #RedirectMatch ^/$ /apache2-default/
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

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

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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/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
    </Directory>

</VirtualHost>
在这里,*表示了进行动态IP绑定,因为有的时候,服务器的IP会更换,如果设置了动态IP绑定,那么只要是指向本机的IP的请求,都会得到服务器的响应(关于IP绑定的请参考其它资料,这里不详细讲明)
在这里的配置,是Apache安装好后的一个默认的主机配置,ServerName可以设置成我们的域名,那么发送过来的请求就可以对应到相应的虚拟主机了,DocumentRoot /var/www/  说明了虚拟主机对应的访问文件目录。
我们对这个文件进行修改如下:
NameVirtualHost *
<VirtualHost *>
    ServerAdmin
webmaster@localhost
    DocumentRoot /var/www/
    #yuana.vicp.net是我申请的域名,添加了A记录到我的IP
    ServerName yuana.vicp.net
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        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
                #RedirectMatch ^/$ /apache2-default/
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

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

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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/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
    </Directory>

</VirtualHost>

<VirtualHost *>
    DocumentRoot /home/yuan/program/tomcat-6.0.14/webapps/yuan/
    #hustyuana.vicp.net是我申请的域名,添加了A记录到我的IP
    ServerName hustyuana.vicp.net
    DirectoryIndex index.html   
    <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/yuan/program/tomcat-6.0.14/webapps/yuan/>
                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
                #RedirectMatch ^/$ /apache2-default/
        </Directory>
</VirtualHost>

在这里,虚拟主机,及其访问目录都已经设置完毕,现在将Apache重启,sudo /etc/init.d/apahce2 restart
在Firefox里面输入
http://yuana.vicp.net 及输入http://hustyuana.vicp.net ,可以看到现在访问到的内容已经不一样了。
注:我是在
www.oray.cn上面申请的免费域名进行的测试,在配置进,也可以到这个网站上面申请域名服务进行测试。

完成前面的工作之后,可以开始最重要的工作了,当然,这个工作其实也挺简单的。
在前面说到,我们在域名管理的时候,可以对域名进行泛域名解析,即*.yuan.hust都发向同一个IP地址,到了这里,我们的工作其实已经很明确了,即发过来的*.yuan.hust,如何对应到我想要它们对应的虚拟主机上。
这里就要对虚拟主机进行配置ServerName 要配置成 *.yuan.hust ,它的含义就是所有的 *.yuan.hust之类的url都对应到这个主机上面,如test.yuan.hust, test2.yuan.hust都会对应到这个虚拟主机上面,到此,完成所有的配置了,你可以在浏览器里面对这些进行测试了,Good luck!
在这里,还有另外一个问题需要说明,比如前面的配置文档,我们配置了两个虚拟主机,这里有一个默认虚拟主机的意义。是什么意思呢?也就是说,如果一个URL指向的是我们的服务器IP,但是,它的URL与我们建立的两个虚拟主机的ServerName都不同,这个时候,Apache的默认主机会提供服务,在上面我们的配置中,yuana.vicp.net会提供默认服务。在这里将这个提出来,是因为这个地方不清楚的话,有时候会比较混乱,在网上看到一些人问的问题,其实根源就在这里。

最后,感谢网上的好友们,谢谢你们的关心,也很高兴能与你们交流。
如果有什么问题的话,请在BLOG里面留言或者给我发邮件 :
yuanabcd2008@163.com


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/antitest/archive/2008/01/27/2067975.aspx

百度云HB主机nginx泛解析绑定多目录

  • 2017年10月27日 15:05
  • 623B
  • 下载

Apache和Tomcat 实现泛域名解析的尝试

 你想让自己的服务器为每个会员提供一个独立的二级域名吗?比如 aa.test.com bb.test.com/blog 当然aa、bb都是你的一个会员而已 下面是我今天尝试成功的部分...
  • chinajobs
  • chinajobs
  • 2015年06月07日 12:27
  • 816

配置apache + tomcat 绑定泛域名

转载于:http://blog.csdn.net/antitest/archive/2008/01/27/2067975.aspx 前段时间,写了关于如何将Apache与tomcat整合起来一起提供服...
  • zgmzyr
  • zgmzyr
  • 2011年01月10日 11:50
  • 2038

H5开发:阿里云虚拟主机子目录如何绑定二级域名

首先同学说怎么不申请个二级域名?比如mingyue.wangshengfei.com额,好吧,还是我没有这个意识,以前都知道学校的网站,tw.hpu.edu.cn是一个特别的域名。首先知道了这个叫二级...
  • Generon
  • Generon
  • 2017年05月17日 21:16
  • 918

Apache 2.2 + Tomcat 泛域名解析 动态二级域名

1.你要让你域名注册的地方开通“泛解析”,就是说*.xxx.com全部解析到一个IP,然后利用程序获得输入的域名,并作相应的处理。 2.在DNS中设好*.xxx.com到IP地址 3.取出...
  • wanglipo
  • wanglipo
  • 2013年08月29日 12:08
  • 1323

结合apache和tomcat实现多域名、多端口绑定

1、本机测试的话,要先配置主机头 系统:windowsxp      C:\WINDOWS\system32\drivers\etc\hosts文件 添加      127.0.0.1       w...
  • eagelangel
  • eagelangel
  • 2014年02月28日 13:10
  • 1987

阿里云虚拟主机子目录绑定二级域名详解

首先同学说怎么不申请个二级域名?比如mingyue.wangshengfei.com额,好吧,还是我没有这个意识,以前都知道学校的网站,tw.hpu.edu.cn是一个特别的域名。首先知道了这个叫二级...
  • Esther_Heesch
  • Esther_Heesch
  • 2016年06月12日 16:40
  • 26395

虚拟主机绑定多个域名不变访问路径方法(php)

 现在国内的虚拟主机一般不提供把域名绑定到主机上的一个目录。比如我要在虚拟主机上放两个站点  ynjob.net           ynwl.com 先在 web根目录下建立 ynjob    和 ...
  • gggxin
  • gggxin
  • 2007年07月09日 14:01
  • 2913

win2008IIS7泛域名设置

公司的服务器是之前设置好的,前几天硬盘坏了,所以要重配。 很多三级域名要配,如果三级域名比较少,那还好说,直接进入网站功能视图--绑定--添加,就行了。 可惜太多了,总不能写二三十个吧,就找有没有...
  • yunraodongpo
  • yunraodongpo
  • 2016年04月01日 10:52
  • 884

tomcat 实现多域名指定同一项目

有时候我们需要将多个域名指向同一个项目,那么在tomcat服务器下该如何实现呢? 之前查过有人说用多个进行配置来实现这个功能~过程如下: ...
  • u014253480
  • u014253480
  • 2016年02月17日 21:44
  • 5895
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:配置apache + tomcat 绑定泛域名
举报原因:
原因补充:

(最多只允许输入30个字)