配置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

Apache_tomcat配置域名-绑定项目

当我们将项目所在服务器的ip和购买的域名绑定好之后,需要对服务器上的Apache进行配置使用户通过域名/URL访问能正确的访问对应的项目。 1:进入服务器Apachet_Tomca的conf目录 ...
  • tanrt
  • tanrt
  • 2017年05月15日 21:23
  • 129

apache+tomcat整合以及域名绑定

准备任务: 1、下载jdk 2、下载apache2.0.55 3、下载tomcat5.5 4、下载jk(mod_jk-apache-2.0.55.so)中间件,连接apache...

apache+tomcat整合以及域名绑定

从网上查了不少资料,想了解一下如何整合Apache和Tomcat,以便让Apache的httpd负责静态内容,让Tomcat负责动态内容的部分。 参考文章: http://blog.csdn.ne...
  • kai_wei
  • kai_wei
  • 2017年06月19日 19:41
  • 154

apache添加虚拟主机配置+本地hosts绑定域名

1.本地hosts 什么是本地hosts?我们知道访问一个域名,通过dns服务器得到该域名所指向的服务器ip地址,然后通过ip地址和服务器建立连接,完成剩下的事情。那么当开发过程中我们没有域名的...

win2003+Apache2.2虚拟主机配置(单IP绑定多域名)之-- 网上的教程真坑爹

win2003+Apache2.2虚拟主机配置(单IP绑定多域名)之-- 网上的教程真坑爹
  • cngdjws
  • cngdjws
  • 2013年10月15日 18:58
  • 2483

Tomcat6.0配置(虚拟目录的设置+多域名绑定)

Tomcat6.0配置(虚拟目录的设置+多域名绑定) 2008-11-26 11:03                         Tomcat6.0配置(虚拟目录的设置+多域名绑定) 优点...

Tomcat6 配置多虚拟主机,多域名绑定一IP

实现效果:http://localhost 访问一个项目例如一个助学网。http://localhost1 访问一个项目例如一个办公系统实现方案,需要修改两个地方一个是C:/WINDOWS/syste...

详解nginx反向代理+SwitchHost+Tomcat绑定域名配置总结

首先说下具体请求流程: 假设客户端A--------》浏览器url请求域名--------》域名被host解析对应的IP--------》到对应IP的服务器--------》先被nginx反向代理拦截...

Tomcat 6.0 配置--虚拟目录的设置+多域名绑定

优点:tomcat6.0可以自动更新类和页面,当然如果修改了配置文件,或者web.xml和lib,则需要重启tomcat才可以. 配置更方便,开设站点只需修改一个conf文件。 Step 1 JD...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:配置apache + tomcat 绑定泛域名
举报原因:
原因补充:

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