如何使用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

您應該獲得以下輸出:

? 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