开始之前,首先来认识下什么是2级域名?
一般我们注册一个域名,比如 www.iteye.com (以下内容均以iteye.com域名为例子,当然这只是example,该域名早已被注册了!),那么这个就是你的1级域名(顶级域名),是固定的并且只有1个,而像 robin.iteye.com,stephen830.iteye.com等等就是你这个1级域名下的2级域名了。因此,每个1级域名下面可以拥有无数个2级域名,只要你的名字符合国际域名名称定义规则。
现在越来越多的网站提供2级域名的功能,就如JavaEye,只要您注册成为用户,您就可以当场得到一个属于自己的2级域名。可能,或许您觉得这其中很神秘,以为这个功能实现会比较复杂,其实不然,看完了本篇文章,相信您也可以轻而易举打造自己的动态2级域名效果了。
下面就让我们一步步来看看如何实现的吧!
第1步 您要准备一个1级域名(国际域名,国内域名都可以),并且您域名所在的dns服务器要支持域名泛解析功能,拿iteye.com来说,泛解析就是a.iteye.com/b.iteye.com/c.iteye.com/...,所有这些都指向iteye.com设置的同一个ip地址,有了这个功能,域名才能够实现动态2级域名。一般域名服务商的dns服务器都有这个功能。如下图(图1):
(图1)
您只需要在域名的配置中增加一条*.开头的记录,就可以实现泛解析了。配置完后,你可以用ping命令测试下,假设你的域名是iteye.com,你可以运行 ping a.iteye.com,如果通的话就表示支持泛解析了。(当然,要注意有的主机服务器屏蔽ping回显!)
第2步 准备好你的WEB应用,这里使用了tomcat,可以在tomcat的server.xml配置文件中进行配置:
Xml代码
<Host name="localhost" debug="0" appBase="/www/doc" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www." suffix=".txt" timestamp="true"/>
</Host>
<Host name="localhost" debug="0" appBase="/www/doc" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www." suffix=".txt" timestamp="true"/>
</Host>
其中的appBase配置自己WEB应用的位置,name="localhost",表示根目录,所有访问本主机的将自动转到appBase配置的应用上。假设您的域名主机地址为 202.109.xx.xx,那么直接在浏览器中输入http://202.109.xx.xx 就会默认打开您在上面配置的那个web应用,这个在你的主机上有多个WEB应用的时候要小心。您在增加其他独立的WEB应用(假设还有个WEB应用是 www.xxx.com)时需要像下面这样的配置:
Xml代码
<Host name="www.xxx.com" debug="0" appBase="/www/doc/xxx" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www.xxx.com." suffix=".txt" timestamp="true"/>
</Host>
<Host name="www.xxx.com" debug="0" appBase="/www/doc/xxx" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www.xxx.com." suffix=".txt" timestamp="true"/>
</Host>
这个独立的www.xxx.com则必须使用域名来访问,不能使用网站ip地址来访问。
第3步 为了更好的展现动态2级域名效果,使用一个frame作为WEB应用的index.html,这个index.html将作为你的WEB应用的首页面。(备注:这个index.html不是必须的,只是为了让浏览器的地址栏显的更加好看而已)
index.html
Html代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>-</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<frameset framespacing="0" border="0" rows="0,*" frameborder="0">
<frame name="" noresize scrolling="no" target="_self" src="" frameborder="0" marginheight="0" marginwidth="0">
<frame name="" scrolling="auto" target="_self" src="index.jsp" frameborder="0" marginheight="0" marginwidth="0">
<noframes>
<body>
<p>您的浏览器版本太低,需要升级后才能使用本系统!</p>
</body>
</noframes>
</frameset>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>-</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<frameset framespacing="0" border="0" rows="0,*" frameborder="0">
<frame name="" noresize scrolling="no" target="_self" src="" frameborder="0" marginheight="0" marginwidth="0">
<frame name="" scrolling="auto" target="_self" src="index.jsp" frameborder="0" marginheight="0" marginwidth="0">
<noframes>
<body>
<p>您的浏览器版本太低,需要升级后才能使用本系统!</p>
</body>
</noframes>
</frameset>
</html>
第4步 实现动态的2级域名。
假设用户在网站(www.iteye.com)上注册一个用户后,用户名比如为 test,那么只要在浏览器中输入 test.iteye.com后,就会进行如下的处理。
输入 test.iteye.com , 首先会解析 test.iteye.com 这个2级域名的ip地址,这样就像输入 http://202.109.xx.xxx/ 一样的效果 (假设 iteye.com的ip为202.109.xx.xxx);然后就会去访问这个域名对应WEB应用的首页面,也就是上面配置的index.html,然后会调用下面的index.jsp
这个jsp才是真正负责进行动态2级域名解析并处理的 index.jsp
Html代码
<%@ page contentType="text/html;charset=UTF-8"%>
<%
String host = request.getHeader("Host").trim();//获得来访者的域名信息,这里如果是2级域名,就会得到例如 test.iteye.com, test就是注册用户名
String[] hosthosts = host.split("[.]");
if(hosts.length==3){//只处理长度为3的信息
if("javaeye".equals(hosts[1])&&"com".equals(hosts[2])){//判断是否是iteye.com的2级域名
String name = hosts[0].trim();
if(!"www".equals(name)){//www是域名本身用的,不能用于表示2级域名,所以在用户注册的时候像www,ftp,mail,smtp,pop等关键词不要被用户注册到。
//在这个位置还需要用个方法来校验下name是否合法,比如name必须是网站的注册用户,将name与网站的用户表数据进行校验
//校验通过后,转到对应的处理页面 response.sendRedirect("self.jsp?name="+name);//2级域名转向到指定的一个处理文件,如这里是self.jsp
return;
}
}
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>--</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff" topmargin="80px" leftmargin="20px" rightmargin="20px">
<!--网站首页面内容-->
</body>
</html>
转载 http://stephen830.iteye.com/blog/277522
分享到:
相关推荐
Tomcat是一款开源的Servlet容器,通常用于部署Java Web应用程序。在本案例中,Tomcat作为后端应用服务器,接收来自Nginx的请求并处理业务逻辑。 ##### Tomcat环境配置 在提供的部分Tomcat配置中,我们看到了`/etc/...
Tomcat是一个实现了Java Servlet和JavaServer Pages(JSP)规范的开源服务器,允许开发者用Java语言来编写动态网页和Web应用程序。Tomcat是轻量级的,相对于其他完整的应用服务器(如JBoss、WebLogic),它的安装、...
作为轻量级应用服务器,Tomcat在处理动态Web内容方面表现优秀,尤其对于小型到中型的项目,它简洁而高效的特性使其成为开发者首选。 一、Tomcat7.0的基础架构 Tomcat7.0基于Servlet 3.0和JSP 2.2规范,这使得它在...
在Java Web开发中,Tomcat扮演着服务器的角色,支持JSP、Servlet等技术,是许多开发者和企业的首选轻量级应用服务器。 Apache Tomcat 7.0.79是7.x系列的一个稳定版本,它修复了前一版本中的多个安全漏洞和性能问题...
Tomcat因其轻量级、易于配置和使用等特点,在Java Web开发领域内广受欢迎。此外,Tomcat还支持HTTP、HTTPS等多种协议,并能够作为独立的应用服务器运行,也可以与Apache等其他Web服务器配合使用。 ### 二、Tomcat...
Tomcat实现了Java Servlet和JavaServer Pages (JSP) 规范,提供了Java的服务器端支持,使Java代码能够在服务器上运行,因此成为了许多Java Web应用的运行平台。 Tomcat架构主要由以下几个核心组件构成: 1. 连接器...
具体到本篇讲解,我们将聚焦于如何使用Nginx配合Tomcat实现这一功能,并通过实例配置来展示具体的实现方式。 首先,Nginx是一款高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP代理服务器。它在处理静态...
Tomcat本身就是一个轻量级的应用服务器,但在处理静态资源方面的能力相对较弱,因此在实际应用中往往与Apache HTTP Server等Web服务器配合使用。 #### 二、Tomcat的工作模式 Tomcat可以根据不同的应用场景和需求...
Apache Tomcat是一款广泛应用的开源Java Servlet容器,它实现了Java EE的Web应用服务器规范,特别是Servlet和JSP。这篇博文可能是关于如何将Apache Tomcat与其他工具或服务进行集成的教程。由于描述部分为空,并且...
在Java Web应用服务器领域,Apache Tomcat是一个广泛使用的轻量级服务器,尤其在处理Servlet和JSP应用方面表现出色。然而,随着业务的增长,单个Tomcat实例可能无法满足高并发和高可用性的需求。这时,我们就需要...
Apache Tomcat作为一款流行的开源Web服务器软件,在Java Web应用领域占据了重要地位。它不仅免费,而且提供了高效稳定的运行环境。本文旨在深入探讨Tomcat的系统架构与设计模式,为读者揭示其内部机制的秘密。 ####...
Tomcat主要负责运行Java Web应用程序,如Servlet和JSP,而Nginx则作为一个前端代理,处理静态资源请求,同时将动态请求转发到Tomcat进行处理。通过这种方式,Nginx可以减轻Tomcat的负担,提高整体性能。 共享80端口...
Tomcat服务器是部署Java Web应用的关键组件,其与JDK的配合使得开发和部署过程更为便捷。通过配置虚拟主机,可以高效地在同一台服务器上托管多个独立的Web应用程序。同时,结合Varnish这样的代理服务器,可以优化...
6. **测试集成**:现在,你可以通过Apache的域名或IP访问网站,动态内容应由Tomcat处理。如果出现404错误,检查配置文件中的路径是否正确,或者查看Apache和Tomcat的日志文件以获取更详细的错误信息。 集成后的...
这种组合利用了Nginx的高性能和轻量级特性以及Tomcat对Java EE应用的良好支持。 Nginx是一款开源的HTTP服务器,它以其高性能、低内存占用和强大的负载均衡能力而著名。在与Tomcat配合时,Nginx主要扮演以下角色: ...
在IT领域,Tomcat是一个广泛使用的Java Web应用程序服务器,它实现了Servlet和JSP规范。本篇主要介绍Tomcat的核心组件认知、`server.xml`配置详解以及自动部署脚本的编写,帮助读者理解和优化生产环境中的Tomcat配置...
9. **前端技术**:前端可能使用HTML、CSS和JavaScript,配合jQuery或其他库实现交互效果。也可能使用Bootstrap等框架提升界面美观度和响应式设计。 10. **部署与运行**:项目最终需要在服务器上部署,可能涉及...
本项目以"Java利用WebSocket实现聊天系统源码"为主题,提供了一套完整的前后端解决方案,包括Java后端服务和前端界面。 后端部分主要涉及以下知识点: 1. **WebSocket API**: WebSocket是HTML5引入的新特性,通过...
9. **URL重写**:通过Apache的mod_proxy或其他反向代理软件与Tomcat配合,还可以实现URL重写,进一步优化虚拟目录的使用体验。 总的来说,理解和熟练配置Tomcat的虚拟目录是每个Java Web开发者必备的技能之一,它有...
Tomcat作为一个轻量级应用服务器,它实现了Java EE的Web部分,尤其是Servlet和JSP规范。以下是关于Tomcat 6.0.32及其使用的一些关键知识点: 1. **版本信息**:Tomcat 6.0.32是在2011年发布的,虽然这个版本现在...