2012-06-16 2 views
0

У меня есть домен (www.0signals.com) и вы хотите создать дополнительный домен, скажем, uploads.0signals.com. Как мне настроить httpd.conf и другие файлы? Где я должен создать папку uploads? Нужно ли создавать любые другие папки для поддержки поддоменов?Как настроить Sub-домен в Apache с помощью хостинга eatj?

Я использую план перехода на eatj и java в качестве основного языка. Моя структура каталогов выглядит следующим образом:

  • бин
  • конфигурации
  • Lib
  • WebApps/ROOT
  • загрузки/ROOT

Я не уверен, что я делаю неправильно. Я обновил зону в DNS, а поддомен/домен оба указывают на один и тот же IP-адрес. Я думаю, что я делаю что-то неправильно с конфигурационным файлом или создаю папку в неправильном месте.

+0

Лучше всего подходит для http://serverfault.com? – jweyrich

ответ

0

Если вы используете прокси-сервер (Apache httpd), то Tomcat не заботится о том, как выглядит ваша конфигурация: вы можете обслуживать все webapps на одном и том же имени хоста (или именах хостов), если хотите. В этом случае настройте httpd для нескольких VirtualHosts, а затем нарисуйте все пространство URL, которое вы хотите на Tomcat.

Если, однако, вы хотите, чтобы отделить WebApps так, что (скажем) один доступен на www.0signals.com и другой один доступен на uploads.0signals.com (но не оба), то вам придется создать более одного <Host> в Tomcat-х server.xml так:

<Host name="localhost" appbase="webapps"> 
    ... 
</Host> 
<Host name="uploads.0signals.com" appbase="uploads"> 
    ... 
</Host> 

я оставил по умолчанию «локальный» <Host> в там без специально идентификации его как www.0signals.com, потому что она должна быть по умолчанию <Host> и получить все, что не соответствует ни одному из других хостов, определенных.

Значения appbase относятся к Tomcat's CATALINA_BASE, который по существу является родительским каталогом везде, где существующий каталог webapps был. Если вы хотите полностью квалифицировать appbase, вы можете это сделать.

После того, как у вас есть ваши ROOT каталоги (или ROOT.war файлы) в webapps и uploads каталогов соответственно, вы должны быть хорошо идти. Использование одного и того же IP-адреса для обоих имен хостов не должно быть проблемой, если вы не хотите настраивать SSL, и в этом случае у вас могут возникнуть трудности с сертификатом SSL, который соответствует только одному домену. Есть способы обойти это, но они не по теме для вашего вопроса.

Update О, еще одна вещь: нет особых причин использовать Apache HTTPD в этом случае. Вам нужно, чтобы eatj использовать httpd out front? Вышеприведенная конфигурация будет работать отлично, без httpd в середине. Если вы намерены проксировать весь трафик на Tomcat, тогда нет причин устанавливать Apache httpd вообще.

Обновление 2012-06-29 Пару вещей:

  1. Ваш DNS не ваша проблема (по крайней мере, не сейчас):

    $ хозяина www.0signals. ком www.0signals.com имеет адрес 69.46.75.150 $ хозяина uploads.0signals.com uploads.0signals.com имеет решения 69.46.75.150

  2. При обращении в каждом из www.0signals.com и uploads.0signals.com, я получаю ответы от двух разных серверов: www.0signals.com реагирует с Server заголовком Apache -Coyote/1.1 (это Tomcat), а другие отвечает с Apache/2.0.63 (это Apache HTTPD). Если вы используете Apache HTTPD для обработки всех запросов, то вам не хватает какой-то JkMount (если вы используете mod_jk) или ProxyPass/ProxyPassReverse (если вы используете mod_proxy_ *) в вашем VirtualHost для uploads.0signals.com. Помните, что ни mod_jk, ни mod_proxy_ * не будут копировать ваши директивы из одного VirtualHost в другой: вы должны сделать это вручную.

+0

Спасибо за подробную информацию, и я сделал, как вы сказали, но он говорит 404. Я также обновил DNS. Проверьте URL-адрес http://uploads.0signals.com/index.jsp –

+0

Пожалуйста, разместите свои '' конфигурации и обновите нас в местах расположения ваших файлов. –

+0

Я загрузил содержимое файла в приведенном выше ответе. –

0
<Host appBase="uploads" autoDeploy="true" name="uploads.0signals.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> 

     <!-- SingleSignOn valve, share authentication between web applications 
      Documentation at: /docs/config/valve.html --> 
     <!-- 
     <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> 
     --> 

     <!-- Access log processes all example. 
      Documentation at: /docs/config/valve.html --> 
     <!-- 
     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
       prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> 
     --> 

     </Host> 
+0

У вас есть только один '' определение: вам нужно два. –

+0

Как мы можем это сделать? Есть что-нибудь, чтобы настроить его? Или только хостинг-провайдер может это сделать ... –

+0

Вам просто нужно продолжать печатать: '<' then 'H' then' o' и т. Д. –