Как прикрепить домен или субдомен к проекту на Java EE / Tomcat, если у вас на сервере еще и Vesta CP со своим Apache/PHP

👁 36 просмотров

Допустим, есть такая ситуация, когда на сервере с одним IP — адресом вы хотите разместить параллельно и проекты PHP сервером Apache на порту 80/8080 и проекты Java EE, которые запущены на любом порту, к примеру на 8085, так как к порту 80/8080 уже не привяжешь. Сервер с PHP проектами управляются при помощи Vesta CP, поэтому весь арсенал управления доменами делаем и него. Ниже список операций для прикрепления.

  1. Первым делом прикрепляем наш домен, если он у нас другом ресурсе к нашему серверу через записи NS;
  2. Создаем новый WEB — хостинг с эти доменом через панель Vesta CP;
  3. После создания хостинга с этим доменом или поддоменом залезаем в корень хостинга и кидаем туда .htaccess с записями перенаправления на наш Java EE проект с его портом
RewriteEngine on
RewriteRule ^(.*)$ http://localhost:port/MyJavaProject/$1 [P]
#localhost - ip адрес нашего сервера
#port - порт, на котором запушен наш Tomcat
#MyJavaProject - контекст проекта

Деплой проекта war под Tomcat в среде Java EE. Статья 1001.

👁 64 просмотров

Почему статья 1001? Потому что любой, кто сталкивался первый раз с развертыванием проекта в Java EE подтвердит неоднозначные трудности. В данной статье, в виде различных ситуаций дадим решения данной проблемы.

1.Есть готовый .war — проект, который надо развернуть на удаленном или локальном сервере

Что мы делаем:

  • берем ProjectName.war — проект и кидаем в папку webapps не меняя ни название и ни расширение после компиляции;
  • перезапускаем сервер Tomcat. В виндовс это можно сделать любым способом, а на сервере Linu[ выполняем команду:
sudo service tomcat9 restart
  • далее идем в строку нашего браузера запускаем в адресной сроке наш проект http://hostname:8085/ProjectName/ и ждем, в зависимости от веса вашего проекта через секунды или минуты задеплоится ваш проект и запустится;
  • закинутый исходник ProjectName.war в папке webapps не удалять, иначе проект раздеплоится, хотя и создается папка work/localhost/ProjectName/, но она пустая.

 

2. Есть готовый war — проект, нужно его задеплоить на сервер Tomcat при помощи менеджера проектов Tomcat

Что мы делаем:

  • Первым первым делом настраиваем сервер, чтобы иметь права на управление скриптами и проектами, для этого идем в папку /conf и редактируем там файл tomcat-users.xml, там, где упоминается юзер, примерно так
 <role rolename="manager-gui"/>
 <role rolename="manager-script"/>
 <role rolename="manager-jmx"/>
 <role rolename="manager-status"/>
 <role rolename="admin-gui"/>
 <role rolename="admin-script"/>
 
 <user username="user" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
  • далее устаналиваем права на папку webapps, как 777, если не будет работать то и на папку work. Потому что, есть случай, когда менеджер не может задеплоить ваш проект по причине нехватки прав на запись в эти папки, учитывая то, что он загружает в эти папки ваш проект и в случае ошибки может выдать вот такой текст
    <em>FAIL - Deploy Upload Failed, Exception: [java.io.FileNotFoundException: </em>
  • идем по адресу http://hostname:8085/manager/, страница запросит данные юзера, которые мы выше прописали в файле tomcat-users.xml в виде логина: user и пароля: password. После авторизации находим кнопку загрузки на сервер и загружаем наш проект ProjectName.war и запускаем по адресу  http://hostname:8085/ProjectName/