Поиск по сайту:

Как запустить несколько веб-приложений на одном сервере Apache Tomcat


Apache Tomcat – это веб-контейнер с открытым исходным кодом, который позволяет развертывать Java-сервлеты, JSP и веб-сокеты для запуска. веб-сервер на базе Java кода. Его также можно идентифицировать как кросс-платформенный контейнер сервлетов или веб-контейнер.

Проще говоря, Tomcat очень популярен среди многих заинтересованных сторон из-за множества преимуществ перед другими веб-контейнерами на рынке. Вы можете создать веб-архивы из своего проекта Java и просто развернуть его в контейнере Tomcat для размещения веб-сервера HTTP, написанного на Java. Промышленные предприятия предпочитают Apache Tomcat другим контейнерам из-за следующих преимуществ.

  1. Легкий вес.
  2. Широко используемый.
  3. Гораздо быстрее, чем другие контейнеры.
  4. Легко настроить.
  5. Очень гибкий.

Обычно Apache Tomcat представляет собой удобный для пользователя продукт, который дает инженерам возможность развертывать свои артефакты WAR (Веб-архивы) с минимальными изменениями конфигурации.

Этот пост предназначен для аудитории, которая уже использует Tomcat и знает, как запустить и использовать движок Apache Tomcat.

В apache tomcat WAR следует помещать в каталог webapps, в котором контейнер развертывает их по умолчанию. Проще говоря, каталог webapps действует как основной контейнер Java-кода, который Tomcat может развернуть в качестве веб-сервера.

В сценарии, когда нам нужно разместить более одного веб-сервера из одного контейнера Tomcat, вы можете использовать этот пост в качестве руководства для этого. В этой статье я собираюсь показать вам, как развернуть несколько веб-приложений или два веб-сервера в одном Tomcat.

Предварительные требования: на сервере должна быть установлена Java. Предпочтительно 1.7.x или выше. В этом уроке у меня установлена Java 1.7, поскольку я использую tomcat версии 8.0.37.

Вы можете установить Java с помощью менеджера пакетов, например yum или apt, как показано:

yum install java              [On CentOS based Systems]
apt-get install default-jre   [On Debian based Systems]

Шаг 1. Установите сервер Apache Tomcat

1. Сначала создайте отдельного пользователя tomcat, используя учетную запись root.

useradd tomcat
passwd tomcat

Теперь войдите в систему как пользователь tomcat и загрузите последний пакет apache tomcat с официального сайта здесь: https://tomcat.apache.org/ или, альтернативно, вы можете использовать следующую команду wget для загрузки непосредственно в терминале. .

В данном случае я загружаю Apache Tomcat, 8.5.5, одну из последних стабильных версий, выпущенных на данный момент.

wget http://redrockdigimark.com/apachemirror/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

2. После загрузки файла распакуйте его содержимое с помощью команды tar и просмотрите структуру каталогов, как показано:

tar -xvf apache-tomcat-8.5.5.tar.gz
cd apache-tomcat-8.5.5/
ls -l
total 112
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 bin
drwx------. 2 tomcat tomcat  4096 Sep  1 01:23 conf
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 lib
-rw-r-----. 1 tomcat tomcat 57092 Sep  1 01:23 LICENSE
drwxr-x---. 2 tomcat tomcat  4096 Sep  1 01:21 logs
-rw-r-----. 1 tomcat tomcat  1723 Sep  1 01:23 NOTICE
-rw-r-----. 1 tomcat tomcat  7063 Sep  1 01:23 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat 15946 Sep  1 01:23 RUNNING.txt
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 temp
drwxr-x---. 7 tomcat tomcat  4096 Sep  1 01:22 webapps
drwxr-x---. 2 tomcat tomcat  4096 Sep  1 01:21 work

Шаг 2. Настройка сервера Apache Tomcat

3. Изменение конфигурации, которое мы ищем, находится в каталоге conf и используется для размещения всех файлов конфигурации, которые помогают запустить Tomcat.

Содержимое каталога conf выглядит следующим образом.

cd conf/
ls -l
total 224
-rw-------. 1 tomcat tomcat  12502 Sep  1 01:23 catalina.policy
-rw-------. 1 tomcat tomcat   7203 Sep  1 01:23 catalina.properties
-rw-------. 1 tomcat tomcat   1338 Sep  1 01:23 context.xml
-rw-------. 1 tomcat tomcat   1149 Sep  1 01:23 jaspic-providers.xml
-rw-------. 1 tomcat tomcat   2358 Sep  1 01:23 jaspic-providers.xsd
-rw-------. 1 tomcat tomcat   3622 Sep  1 01:23 logging.properties
-rw-------. 1 tomcat tomcat   7283 Sep  1 01:23 server.xml
-rw-------. 1 tomcat tomcat   2164 Sep  1 01:23 tomcat-users.xml
-rw-------. 1 tomcat tomcat   2633 Sep  1 01:23 tomcat-users.xsd
-rw-------. 1 tomcat tomcat 168133 Sep  1 01:23 web.xml

4. В данном случае для меня важен файл server.xml. Поэтому я не буду подробно объяснять другие файлы и каталоги.

server.xml — это файл конфигурации, который сообщает tomcat, какой порт запускать, содержимое какого каталога развертывать, а также многие другие основные и базовые конфигурации.

После открытия файла это выглядит примерно так, как показано ниже.

vim server.xml

Шаг 3. Развертывание веб-приложений в Apache Tomcat

5. Теперь мы развернем новое веб-приложение в Apache Tomcat. Сначала найдите место, где закрыт тег службы , и вставьте строки ниже после первого закрытия. Метка.

<Service name="webapps2">
    <Connector port="7070" maxHttpHeaderSize="7192"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="7443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" />
        <Connector port="7072" 
        enableLookups="false" redirectPort="7043" protocol="AJP/1.3" />

    <Engine name="webapps2" defaultHost="localhost">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>
            <Host name="localhost" appBase="webapps2"
                unpackWARs="true" autoDeploy="true"
                 xmlValidation="false" xmlNamespaceAware="false">
            </Host>
    </Engine>
</Service>

Как видите, я изменил порт соединителя на 7070 во вновь вставленной записи, поскольку tomcat по умолчанию начинается с порта 8080. После полной настройки под портами 8080 и 7070 будут работать два веб-сервера.

6. После сохранения изменений, внесенных в server.xml, создайте каталог в Apache с именем webapps2 в главном файле Apache.

cd /home/tomcat/apache-tomcat-8.5.5/
mkdir webapps2

Если вы обратите внимание на новую запись server.xml, которую я предоставил, вы увидите, что имя службы, база приложения и механизм называются webapps2. Именно поэтому я создал каталог с именем webapps2. Вы можете создать его по своему усмотрению, но обязательно вносите изменения в запись по мере необходимости.

7. Чтобы убедиться, что второй веб-сервер запущен и работает, я скопировал содержимое каталога webapps в каталог webapps2.

cp -r webapps/* webapps2/

8. Теперь самое интересное. Мы собираемся запустить сервер и посмотреть, работает ли он. Перейдите в каталог bin и выполните скрипт startup.sh. Вы можете просмотреть журналы в файле catalina.out, который находится в каталоге журналов.

cd bin/
./startup.sh
Using CATALINA_BASE:   /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_HOME:   /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-8.5.5/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/tomcat/apache-tomcat-8.5.5/bin/bootstrap.jar:/home/tomcat/apache-tomcat-8.5.5/bin/tomcat-juli.jar
Tomcat started.

9. Если вы обратитесь к журналам, вы сможете увидеть, что и webapps, и webapps2 развернуты и приложение запускается без каких-либо проблем. .

cd logs/
tail -25f catalina.out 
29-Sep-2016 12:13:51.210 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples
29-Sep-2016 12:13:51.661 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples has finished in 452 ms
29-Sep-2016 12:13:51.664 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs
29-Sep-2016 12:13:51.703 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs has finished in 39 ms
29-Sep-2016 12:13:51.704 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager
29-Sep-2016 12:13:51.744 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager has finished in 39 ms
29-Sep-2016 12:13:51.748 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
29-Sep-2016 12:13:51.767 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service webapps2
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.5
29-Sep-2016 12:13:51.777 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager has finished in 102 ms
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT
29-Sep-2016 12:13:51.915 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT has finished in 35 ms
29-Sep-2016 12:13:51.927 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples
29-Sep-2016 12:13:52.323 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
29-Sep-2016 12:13:52.337 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples has finished in 414 ms
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs has finished in 29 ms
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager
29-Sep-2016 12:13:52.417 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager has finished in 46 ms
...

10. В этом сценарии IP-адрес используемого мной сервера — 172.16.1.39, и вы можете видеть, что я могу запустить два веб-сервера в одном контейнере Tomcat.

http://172.16.1.39:8080   [1st Web App]
http://172.16.1.39:7070   [2nd Web App]

Надеюсь, вы найдете эту статью полезной и приятной. Оставайтесь на связи с TecMint и обращайтесь ко мне по любым вопросам, касающимся этой статьи.