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

Как установить Apache Tomcat 9 с прокси-сервером Nginx на Debian 10


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить Java
  4. Установить Tomcat
  5. Создание служебного файла Systemd для Tomcat
  6. Настройка веб-интерфейса Tomcat
  7. Настройка Nginx для Tomcat
  8. Доступ к веб-интерфейсу Tomcat
  9. Заключение

Tomcat — это бесплатный легкий сервер приложений с открытым исходным кодом, используемый для развертывания приложений на основе Java. Его можно использовать как отдельный сервер или в сочетании с другими серверами, такими как Apache и Nginx. Он предоставляет расширенные функциональные возможности для взаимодействия с сервлетами Java, а также реализует несколько технических спецификаций платформы Java. В настоящее время Tomcat является одним из наиболее широко используемых серверов приложений для Java.

В этом руководстве я покажу вам, как установить Tomcat 9 с Nginx на Debian 10.

Предпосылки

  • Сервер под управлением Debian 10.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • На вашем сервере настроен пароль root.

Начиная

Перед началом рекомендуется обновить кеш APT до последней версии. Вы можете обновить его, выполнив следующую команду:

apt-get update -y

Как только кеш вашего системного пакета будет обновлен, вы можете перейти к следующему шагу.

Установить Java

Tomcat — это приложение на основе Java, поэтому на вашем сервере должна быть установлена Java. Если он не установлен, вы можете установить его с помощью следующей команды:

apt-get install default-jdk -y

После установки Java вы можете проверить версию Java с помощью следующей команды:

java --version

Вы должны получить следующий результат:

openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)

Как только вы закончите, вы можете перейти к следующему шагу.

Установить Томкэт

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

useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Затем загрузите последнюю версию Tomcat с помощью следующей команды:

wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz

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

tar -xvzf apache-tomcat-9.0.45.tar.gz

Затем переместите извлеченный каталог в /opt с помощью следующей команды:

mv apache-tomcat-9.0.45 /opt/tomcat/tomcat

Затем установите правильное разрешение и право собственности с помощью следующей команды:

chown -R tomcat:tomcat /opt/tomcat/tomcat
chmod -R 755 /opt/tomcat/tomcat

Как только вы закончите, вы можете перейти к следующему шагу.

Создайте служебный файл Systemd для Tomcat

Далее вам нужно будет создать файл службы systemd для управления службой Tomcat. Вы можете создать его с помощью следующей команды:

nano /etc/systemd/system/tomcat.service

Добавьте следующие строки:

[Unit]
Description=Tomcat 9.0 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/tomcat"
Environment="CATALINA_HOME=/opt/tomcat/tomcat"
Environment="CATALINA_PID=/opt/tomcat/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл, затем перезагрузите демон systemd с помощью следующей команды:

systemctl daemon-reload

Затем запустите службу Tomcat и включите ее запуск при перезагрузке системы с помощью следующей команды:

systemctl start tomcat
systemctl enable tomcat

Вы также можете проверить статус Tomcat с помощью следующей команды:

systemctl status tomcat

Вы должны получить следующий результат:

? tomcat.service - Tomcat 9.0 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-04-14 05:41:21 UTC; 42s ago
  Process: 5784 ExecStart=/opt/tomcat/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5791 (java)
    Tasks: 30 (limit: 4701)
   Memory: 159.1M
   CGroup: /system.slice/tomcat.service
           ??5791 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/tomcat/conf/logging.properties -Djava.util.log

Apr 14 05:41:21 debian systemd[1]: Starting Tomcat 9.0 servlet container...
Apr 14 05:41:21 debian startup.sh[5784]: Tomcat started.
Apr 14 05:41:21 debian systemd[1]: Started Tomcat 9.0 servlet container.

Как только вы закончите, вы можете перейти к следующему шагу.

Настройка веб-интерфейса Tomcat

Далее вам нужно будет определить пользователя для доступа к веб-интерфейсу Tomcat. Вы можете определить его с помощью файла tomcat-users.xml:

nano /opt/tomcat/tomcat/conf/tomcat-users.xml

Найдите раздел и добавьте или измените следующие строки:

  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <user username="tomcatadmin" password="password" roles="admin-gui,manager-gui"/>

Сохраните и закройте файл, когда закончите.

По умолчанию веб-интерфейс Tomcat настроен на доступ только с локального хоста. Поэтому вам нужно будет настроить его для внешнего доступа.

Для приложения Manager отредактируйте следующую строку:

nano /opt/tomcat/tomcat/webapps/manager/META-INF/context.xml

Для приложения Host Manager отредактируйте следующий файл:

nano /opt/tomcat/tomcat/webapps/host-manager/META-INF/context.xml

Удалите следующую строку:

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

Сохраните и закройте файл, затем перезапустите службу Tomcat, чтобы применить изменения:

systemctl restart tomcat

Как только вы закончите, вы можете перейти к следующему шагу.

Настроить Nginx для Tomcat

Далее вам нужно будет установить и настроить Nginx в качестве обратного прокси для Tomcat. Сначала установите пакет Nginx с помощью следующей команды:

apt-get install nginx -y

После установки Nginx вам потребуется создать новый файл конфигурации виртуального хоста Nginx для Tomcat. Вы можете создать его с помощью следующей команды:

nano /etc/nginx/conf.d/tomcat.conf

Добавьте следующие строки:

server {
  listen          80;
  server_name     tomcat.example.com;
  root            /opt/tomcat/tomcat/webapps/;


  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;
  }
}

Сохраните и закройте файл, затем проверьте Nginx на наличие синтаксической ошибки:

nginx -t

Вы должны увидеть следующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

Затем проверьте состояние службы Nginx с помощью следующей команды:

systemctl status nginx

Вы должны увидеть следующий вывод:

? nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-04-14 05:57:03 UTC; 1min 38s ago
     Docs: man:nginx(8)
  Process: 6852 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6853 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6854 (nginx)
    Tasks: 3 (limit: 4701)
   Memory: 4.0M
   CGroup: /system.slice/nginx.service
           ??6854 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??6855 nginx: worker process
           ??6856 nginx: worker process

Apr 14 05:57:03 debian systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 14 05:57:03 debian systemd[1]: Started A high performance web server and a reverse proxy server.

На данный момент Nginx настроен на доступ к Tomcat. Теперь вы можете перейти к следующему шагу.

Доступ к веб-интерфейсу Tomcat

Теперь откройте веб-браузер и войдите в веб-интерфейс Tomcat, используя URL-адрес http://tomcat.example.com. Вы должны увидеть следующую страницу:

Нажмите на приложение Manager, вы должны увидеть следующую страницу:

Укажите имя пользователя и пароль администратора приложения Manager и нажмите кнопку «Войти». Вы должны увидеть следующую страницу:

Вы также можете нажать на Host Manager, чтобы получить доступ к приложению Host Manager, как показано ниже:

Заключение

Поздравляем! вы успешно установили Tomcat с Nginx в качестве обратного прокси-сервера в Debian 10. Теперь вы можете легко развернуть свое приложение Java с помощью Tomcat. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.