Как установить Apache Tomcat с обратным прокси-сервером Nginx в Ubuntu 22.04
Apache Tomcat — это веб-сервер Java с открытым исходным кодом и контейнер сервлетов, используемый для размещения веб-приложений, написанных на Java. Это лучший выбор веб-разработчиков для создания и поддержки динамических веб-сайтов и приложений на основе программной платформы Java. Это проект с открытым исходным кодом, разработанный Apache Software Foundation. Tomcat позволяет веб-серверу обрабатывать динамический веб-контент на основе Java.
Из этого туториала вы узнаете, как установить Apache Tomcat в Ubuntu 22.04.
Предварительные условия
- Сервер под управлением Ubuntu 22.04.
- Действующее доменное имя, соответствующее IP-адресу вашего сервера.
- На сервере настроен пароль root.
Установить Java JDK
Apache Tomcat — это приложение на основе Java, поэтому Java должна быть установлена на вашем сервере. Если Java не установлена, вы можете установить ее с помощью следующей команды:
apt install default-jdk -y
После установки Java вы можете проверить версию Java с помощью следующей команды:
java -version
Вы получите следующий результат:
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
Установите Apache Tomcat в Ubuntu 22.04.
Во-первых, рекомендуется запустить Tomcat от имени отдельного пользователя. Вы можете создать пользователя Tomcat с помощью следующей команды:
useradd -m -d /opt/tomcat -U -s /bin/false tomcat
Затем загрузите последнюю версию Apache Tomcat с помощью следующей команды:
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
После загрузки Apache Tomcat извлеките загруженный файл в каталог /opt:
tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Затем установите правильное право собственности и разрешения для каталога Tomcat:
chown -R tomcat:tomcat /opt/tomcat/
chmod -R u+x /opt/tomcat/bin
Как только вы закончите, вы можете перейти к следующему шагу.
Создать пользователя-администратора Tomcat
По умолчанию доступ к Tomcat возможен без какой-либо аутентификации. Поэтому рекомендуется включить аутентификацию и создать пользователя с правами администратора для Tomcat. Вы можете добавить его, отредактировав файл конфигурации пользователя Tomcat:
nano /opt/tomcat/conf/tomcat-users.xml
Добавьте следующие строки над строкой :
<role rolename="admin-gui" />
<user username="admin" password="yourpassword" roles="manager-gui,admin-gui" />
Сохраните и закройте файл, когда закончите.
Включить удаленный доступ Tomcat
По умолчанию Tomcat настроен на доступ только с локального хоста. Поэтому рекомендуется включить удаленный доступ Tomcat для управления Tomcat с удаленного хоста.
Чтобы включить приложение-менеджер с удаленного хоста, отредактируйте следующий файл:
nano /opt/tomcat/webapps/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" />
Чтобы включить приложение диспетчера хоста с удаленного хоста, отредактируйте следующий файл:
nano /opt/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" />
Сохраните и закройте файл, когда закончите.
Создайте служебный файл для Apache Tomcat
Далее вам нужно будет создать служебный файл для управления службой Tomcat через systemd. Вы можете создать его с помощью следующей команды:
nano /etc/systemd/system/tomcat.service
Добавьте следующие строки:
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Сохраните и закройте файл, затем перезагрузите демон systemd, чтобы применить изменения:
systemctl daemon-reload
Затем запустите службу Tomcat и включите ее запуск при перезагрузке системы с помощью следующей команды:
systemctl start tomcat
systemctl enable tomcat
Вы можете проверить статус Apache Tomcat с помощью следующей команды:
systemctl status tomcat
Вы получите следующий результат:
? tomcat.service - Tomcat
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-29 08:11:54 UTC; 6s ago
Process: 18959 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 18966 (java)
Tasks: 29 (limit: 4630)
Memory: 116.4M
CPU: 5.312s
CGroup: /system.slice/tomcat.service
??18966 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Dja>
Apr 29 08:11:54 ubuntu systemd[1]: Starting Tomcat...
Apr 29 08:11:54 ubuntu startup.sh[18959]: Tomcat started.
Apr 29 08:11:54 ubuntu systemd[1]: Started Tomcat.
На этом этапе Tomcat запускается и прослушивает порт 8080. Проверить это можно с помощью следующей команды:
ss -antpl | grep java
Вы получите следующий результат:
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* users:(("java",pid=18966,fd=53))
LISTEN 0 100 *:8080 *:* users:(("java",pid=18966,fd=43))
Как только вы закончите, вы можете перейти к следующему шагу.
Настройте Nginx в качестве обратного прокси для Tomcat
Далее вам нужно будет создать Nginx в качестве обратного прокси-сервера для Apache Tomcat. Сначала установите веб-сервер Nginx с помощью следующей команды:
apt-get install nginx -y
После установки веб-сервера Nginx создайте файл конфигурации виртуального хоста Nginx с помощью следующей команды:
nano /etc/nginx/conf.d/tomcat.conf
Добавьте следующие строки:
server {
listen 80;
server_name tomcat.example.com;
access_log /var/log/nginx/tomcat-access.log;
error_log /var/log/nginx/tomcat-error.log;
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 Fri 2022-04-29 08:15:28 UTC; 8s ago
Docs: man:nginx(8)
Process: 19070 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 19071 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 19072 (nginx)
Tasks: 3 (limit: 4630)
Memory: 3.3M
CPU: 63ms
CGroup: /system.slice/nginx.service
??19072 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??19073 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
??19074 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Apr 29 08:15:28 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 29 08:15:28 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.
Доступ к Apache Tomcat
Теперь откройте веб-браузер и войдите в веб-интерфейс Apache Tomcat, используя URL-адрес http://tomcat.example.com. Вы должны увидеть панель управления Tomcat на следующем экране:
Нажмите Приложение Manager. Вам будет предложено пройти аутентификацию, как показано ниже:
Укажите имя пользователя и пароль администратора и нажмите кнопку Войти. Вы должны увидеть панель управления приложения Manager на следующем экране:
Чтобы получить доступ к приложению Host Manager, нажмите Host Manager. Вы должны увидеть следующий экран:
Нажмите Статус сервера. Вы должны увидеть статус Apache Tomcat на следующем экране:
Заключение
Поздравляем! Вы успешно установили Apache Tomcat с Nginx в качестве обратного прокси-сервера в Ubuntu 22.04. Теперь вы можете создать и разместить свое первое Java-приложение с помощью Apache Tomcat. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.