如何使用Nginx代理在Debian 10上安装Apache Tomcat 9

如何使用Nginx代理在Debian 10上安装Apache Tomcat 9

Tomcat是一个免费的,开源的,轻量级的应用程序服务器,用于部署基于Java的应用程序。它可以用作独立服务器,也可以与其他服务器(例如Apache和Nginx)结合使用。它提供了与Java Servlet交互的扩展,还实现了Java平台的一些技术规范。 Tomcat当前是Java中使用最广泛的应用程序服务器之一。

本教程将向您展示如何使用Nginx在Debian 10上安装Tomcat 9。

先决条件

  • 运行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

首先,您需要创建一个专用用户来运行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/tomcatchmod -R 755 /opt/tomcat/tomcat

完成后,您可以继续下一步。

为Tomcat创建Systemd服务文件

接下来,您需要创建一个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 tomcatsystemctl enable tomcat

您还可以使用以下命令检查Tomcat的状态:

systemctl status tomcat

您应该获得以下输出:Advertisement

? 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 Web界面

接下来,您需要定义一个用户来访问Tomcat Web界面。 可以使用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 Web界面配置为仅从本地主机访问。因此,必须对其进行配置以供外部访问。广告

对于Manager应用程序,编辑以下行:

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

对于主机管理器应用程序,编辑以下文件:

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

完成后,您可以继续下一步。

为Tomcat配置Nginx

接下来,您需要安装Nginx并将其配置为Tomcat的反向代理。首先,使用以下命令安装Nginx软件包:

apt-get install nginx -y

安装Nginx之后,您需要为Tomcat创建一个新的Nginx虚拟主机配置文件。可以使用以下命令创建它:

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 Web UI

然后打开Web浏览器并使用URL访问Tomcat Web UI。 http://tomcat.example.com..显示下一页。

请点击 经理 应用程序,显示下一页。

Tomcat登录

输入Manager应用程序的管理员用户名和密码,然后单击 登入 按钮。显示下一页。

Tomcat仪表板

您也可以点击 房东经理 要访问主机管理器应用程序,如下所示:

虚拟主机管理器

结论

恭喜!您已使用Nginx作为反向代理在Debian 10上成功安装了Tomcat。现在,您可以使用Tomcat轻松部署Java应用程序。如有任何疑问,请随时与我们联系。

Source

Sidebar