Я - разработчик веб-приложения, просто новичок. Я разрабатываю маленькое веб-приложение J2EE (например, сервисное название было бы похоже на http://www.example.com). Это использует Tomcat Apache. Спецификация: Когда пользователь подпишется в веб-приложение, он получит пользовательский домен как
Как я могу выполнить это в своем веб-приложении. Я все еще разрабатываю приложение. я еще не разместил его.
Вам нужно будет создать виртуальный хост для каждого поддомена в конфигурации Apache типа:
. ServerAdmin webmaster@subdomain1.example.com
DocumentRoot /www/subdomain1.example.com
Имя сервера subdomain1.example.com
ErrorLog logs/subdomain1.example.com-host.example.com-error_log
Журналы CustomLog/subdomain1.example.com-access_log обычно
Однако есть одна проблема. Если ваше решение требует создания папок, добавления виртуального хоста и перезагрузки apache, что не очень хорошо выглядит для меня. Как мне решить эту проблему:
Если вы используете этот способ, вам нужно лишь один раз настроить вышеописанное, а затем добавить в хранилище поддомены, что кажется более гибким решением, чем создание подкаталогов и модификация конфигурации Apache.
Похоже, вы ищете виртуальных хозяев на Томкате. Тогда поддомены должны быть настроены в Tomcat:
http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html
Веб-приложение управляет только той частью URL, которая начинается с корня контекста. Таким образом, если есть веб-приложение "www.mysite.com/", оно может обрабатывать запросы на "www.mysite.com/alice" или "www.mysite.com/bob", но оно не будет обрабатывать запросы на "alice.mysite.com/", если это не было сконфигурировано в Tomcat-сервере. Это означает, что для каждого нового пользователя, Tomcat должен быть настроен с новым субдоменом. Я думаю, что это нельзя сделать изнутри веб-приложения.
У вас есть две проблемы.
Сначала вам нужно, чтобы браузер пользователя распознал, где находится «username.mysite.com». Для этого требуется конфигурация DNS, обычно в форме "подстановочного знака CNAME". Обратите внимание, что dyndns.org предоставляет это в своем пакете Dynamic DNS Pro, если вы хотите контролировать себя на этапе тестирования.
Во-вторых, вам нужно будет указать Tomcat, чтобы он выводил пользователя из имени хоста и предоставлял отдельный сайт для каждого пользователя. Самый простой способ сделать это - это, скорее всего, использовать фильтр сервлета, который "пробует" имя хоста в URL-адресе и устанавливает свойства, необходимые для ваших jsp-страниц.
если вы работаете в Windows, отредактируйте файл \ windows \ system32 \ drivers \ etc \ hosts и добавьте такую строку:
127.0.0.1 username.mysite.com
тогда, когда сервер запущен, вы можете открыть браузер и ввести:
http://username.mysite.com
http://username.mysite.com:8080
или что-то еще и посетите веб-сайт.
Для этого вам потребуются права администратора.
если вы работаете в Linux, вам нужно будет отредактировать / etc / hosts и сделать то же самое.
однако, когда вы развертываете, это больше касается настройки веб-сервера и DNS-сервера. поэтому, если вы хотите получить все возможности, вам следует установить DNS-сервер локально и использовать его в качестве сетевого сервера имен. это более сложная задача, и инструкции зависят от того, используете ли вы Linux или Windows, и какой веб-сервер вы используете.
тогда вам нужно написать немного кода в своем приложении, чтобы проверить переменные сервера, чтобы узнать, какой субдомен был использован, и выполнить обработку на его основе.
Вы можете создать виртуальный хост wildcard
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
</VirtualHost>
, а затем иметь дело с поддоменами внутри кода вашего приложения, используя что-то вроде HttpServletRequest#getRequestURL()