如何在J2EE Web应用程序中创建类似"http://username.example.com"的域?

Ana*_*and 11 java tomcat java-ee

我是一名Web应用程序开发人员,只是一名初学者.我正在设计一个小型J2EE Web应用程序(例如,服务名称将类似于http://www.example.com).它使用Apache Tomcat.规范:当用户注册Web应用程序时,他将获得一个自定义域名

http://username.example.com

如何在我的Web应用程序中完成此操作.我还在开发应用程序.我还没有托管它.

Ash*_*wal 4

您需要在 Apache 配置中为每个子域创建一个虚拟主机,例如:

<VirtualHost *:80>
ServerAdmin webmaster@subdomain1.example.com
DocumentRoot /www/subdomain1.example.com
ServerName subdomain1.example.com
ErrorLog 日志/subdomain1.example.com-host.example.com-error_log
CustomLog 日志/subdomain1。 example.com-access_log 常见
</VirtualHost>

但有一个问题。如果您的解决方案需要创建文件夹、添加虚拟主机和重新启动 apache,这对我来说不太好。我将如何处理这个问题是:

  1. 为“*.example.com”创建通配符虚拟主机,以便所有对子域的请求都转到该虚拟主机。
  2. 设置一个重写规则,将所有请求重定向到一个页面,例如index.jsp
  3. 编写一个 JSP 页面,获取用户访问的主机名,通过它在存储(即 mysql db)中搜索重定向 URL,然后重定向到它。该脚本将是通配符主机上的index.jsp 脚本。

如果您使用这种方式,您只需要设置上述一次,然后将子域添加到存储中,这似乎是比创建子文件夹和修改 Apache 配置更灵活的解决方案。