[JAVA] Der Weg zum Erstellen eines Webdienstes (Teil 2)

Letzte Zusammenfassung

Wir haben über den Prozess der Erstellung eines Webdienstes und die Gliederung der Dienstgliederung gesprochen. Weitere Informationen finden Sie hier "Der Weg zur Erstellung von Webdiensten (Teil 1)".

Inhalt dieser Zeit

Dieses Mal werde ich die Arbeit zum Aufbau der Serverumgebung veröffentlichen. Die Arbeitsinhalte sind wie folgt. ・ Installation des Betriebssystems ・ JDK-Installation -Installation und automatische Starteinstellungen von Tomcat und Apache httpd -Web Application Manager-Einstellungen für die einfache Bereitstellung in Tomcat ・ Zusammenarbeit zwischen Tomcat und Apache httpd Ermöglicht die Übergabe der Verarbeitung an Tomcat durch Zugriff auf Apache

Warum haben Sie Apache anstelle des trendigen Nginx gewählt? Das liegt daran, dass ich aufgrund der Berücksichtigung des Service-Inhalts und der Funktionalität dieser Zeit Apache für vorzuziehen hielt. Nginx scheint geschaffen worden zu sein, um das C10K-Problem von Apache zu lösen, aber dieser Dienst ist kein Dienst, auf den 10.000 Personen gleichzeitig zugreifen können. Und obwohl der ereignisgesteuerte Nginx weniger Speicher benötigt und schneller ist, hat er von Anfang an nicht viele Funktionen. Da Apache von Anfang an über zahlreiche Funktionen als Webserver verfügt, dachte ich, dass es für mich, der unerfahren ist, einfach sein würde, ihn ohne Arbeit zu erstellen.

Umgebung

Installation des Betriebssystems

Installieren Sie CentOS 7.4 auf VMware

Befolgen Sie die Schritte unter dem obigen Link, um CentOS auf VMware zu installieren. Normalerweise verwende ich CentOS als Hauptbetriebssystem. Es kann Ubuntu sein, wenn es beliebt ist, aber da Linux in erster Linie nur für Serverzwecke verwendet wird, wird die GUI nicht hauptsächlich verwendet. Daher finde ich Ubuntu nicht attraktiv. Außerdem fühle ich mich unwohl mit Ubuntu, das häufig aktualisiert wird. CentOS ist ein RHEL-Klon, der ein Gefühl der Stabilität hat und häufig von Unternehmen für den Einsatz in Unternehmen verwendet wird. Daher möchte ich mich für die Zukunft daran gewöhnen. Der Hauptgrund ist jedoch, dass es am einfachsten ist, RHEL im Feld zu verwenden.

JDK-Installation

# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel 

Tomcat-Benutzer erstellt

Erstellen Sie aus Sicherheitsgründen einen dedizierten Benutzer für Tomcat, ohne eine Anmeldeshell zu erstellen

# useradd -s /sbin/nologin tomcat

Kater herunterladen

# cd /opt
# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz

Sie können es mit yum installieren, aber tomcat7 ist standardmäßig installiert. Sie können die neueste Version installieren, indem Sie das yum-Repository bearbeiten. Dies ist jedoch problematisch. Laden Sie das Paket daher direkt herunter und entpacken Sie es.

Stellen Sie Tomcat bereit

# tar -xvzf apache-tomcat-9.0.8.tar.gz 

Erstellen Sie einen symbolischen Link

Verwalten Sie das Tomcat-Verzeichnis mit symbolischen Links unter Berücksichtigung von Versionsänderungen

# ln -s /opt/apache-tomcat-9.0.8 /opt/tomcat

Umgebungsvariablen einstellen

Folgende Inhalte wurden hinzugefügt

# vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre
export CATALINA_HOME=/opt/tomcat

Reflektieren

# source /etc/profile

Reflexionsbestätigung

# /opt/tomcat/bin/version.sh

Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/9.0.8
Server built:   Apr 27 2018 19:32:00 UTC
Server number:  9.0.8.0
OS Name:        Linux
OS Version:     3.10.0-693.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_171-b10
JVM Vendor:     Oracle Corporation

Firewall-Einstellungen

Überprüfen Sie die aktuellen Einstellungen

# firewall-cmd --list-services --zone=public --permanent

ssh dhcpv6-client

Fügen Sie hier Kater hinzu

Servicezusatz Erstellen Sie eine neue Datei und fügen Sie den folgenden Inhalt hinzu

# vi /etc/firewalld/services/tomcat.xml



Apache Tomcat 9 Apache Tomcat 9 ```

Reflektieren Sie die Einstellungen

# firewall-cmd --add-service=tomcat --zone=public --permanent
# firewall-cmd --reload

Bestätigung

# firewall-cmd --list-services --zone=public --permanent
ssh dhcpv6-client tomcat

Deaktivieren Sie SELinux

SELINUX wurde deaktiviert

# vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Starten Sie neu

# reboot

Überprüfen Sie die Einstellungen nach dem Neustart

# getenforce
  Disabled

Tomcat starten

# /opt/tomcat/bin/startup.sh
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.

Bestätigen Sie den Start mit dem Browser http://localhost:8080 https://gyazo.com/56aab39d87ab6e6c5b058efd195376e0

Tomcat Autostart-Einstellung

Erstellen Sie eine Tomcat-Servicedatei mit einer neuen Datei

# vi /etc/systemd/system/tomcat.service



[Unit] Description=Apache Tomcat 9 After=network.target

[Service] User=tomcat Group=tomcat Type=oneshot PIDFile=/opt/tomcat/tomcat.pid RemainAfterExit=yes

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

[Install] WantedBy=multi-user.target


 Reflektieren

systemctl daemon-reload


 Autostart aktiviert

systemctl enable tomcat


 Benutzer, Gruppe in Kater geändert

chown -R tomcat:tomcat /opt/tomcat



 Bestätigung des automatischen Starts

reboot


 Überprüfen Sie den Status nach dem Neustart. Muss aktiv sein.

systemctl status tomcat

● tomcat.service - Apache Tomcat 9 Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled) Active: active (exited)


 Überprüfen Sie für alle Fälle die Anzeige mit einem PC-Browser
 http://[IPアドレス]:8080

### Einstellungen des Webanwendungsmanagers
 Ermöglichen Sie die Bereitstellung und Verwaltung von Webanwendungen über die GUI.
 Fügen Sie der Datei die folgende Beschreibung hinzu. * XXXX ist der Administratorname und der Pfad, den Sie festlegen möchten


#### **`# vi /opt/tomcat/conf/tomcat-users.xml `**
```xml 


```

Ermöglicht den Zugriff von externen Terminals. Derzeit kann nur von localhost aus darauf zugegriffen werden. Ändern Sie daher die Zulassungseinstellung.

# vi /opt/tomcat/webapps/manager/META-INF/context.xml





 Starten Sie neu und spiegeln Sie die Einstellungen wider

systemctl restart tomcat


 Zugang von außen
 http://IPアドレス:8080/manager/html
[![https://gyazo.com/fd312f8dc485aa6a6e44b7270cc5b0a7](https://i.gyazo.com/fd312f8dc485aa6a6e44b7270cc5b0a7.png)](https://gyazo.com/fd312f8dc485aa6a6e44b7270cc5b0a7)

 Wenn es sicher angezeigt wird, ist es OK

### Installieren und Konfigurieren von Apache httpd
 Installation

yum install httpd


 Bestätigung

httpd -version

Server version: Apache/2.4.6 (CentOS) Server built: Apr 20 2018 18:10:38


 Firewall-Einstellungen

firewall-cmd --add-service=http --permanent

firewall-cmd --reload


 Apache Autostart-Einstellungen

systemctl enable httpd


 Überprüfen Sie die Einstellungen
 Stellen Sie sicher, dass es aktiviert ist

systemctl status httpd

● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: inactive (dead)


 Bestätigung des Servicestarts
 Überprüfen Sie den Status nach dem Neustart

systemctl status httpd

● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running)



### Zusammenarbeit zwischen Apache und Tomcat mithilfe des AJP-Protokolls

 Stellen Sie sicher, dass das AJP-Protokoll eingestellt ist


#### **`# view /opt/tomcat/conf/server.xml`**
```xml


```

Modulfreigabeeinstellung Überprüfen Sie die folgenden zwei Module. Wenn es kommentiert ist, nehmen Sie einen Kommentar.

# vi /etc/httpd/conf.modules.d/00-proxy.conf



LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so


 Allein damit habe ich es nur aktiviert und eine Einstellung hinzugefügt, um alle Apache-httpd-Anforderungen an Tomcat zu übergeben.

ProxyPass / ajp://localhost:8009/


 Starten Sie Apache httpd neu und bestätigen Sie den Start

systemctl restart httpd

[![https://gyazo.com/2fe182fbafc4bd9b07cbbe83609221ed](https://i.gyazo.com/2fe182fbafc4bd9b07cbbe83609221ed.png)](https://gyazo.com/2fe182fbafc4bd9b07cbbe83609221ed)

 Stellen Sie sicher, dass es von Apache httpd übergeben wird und Tomcat gestartet werden kann, ohne den Port auf 8080 zu setzen

 Für diese Arbeit war der externe Zugriff des Webanwendungsmanagers von tomcat der entscheidende Punkt. Die meisten Einstellungsdateien wurden am falschen Ort gespeichert, und ich habe mich mit meinem erfahrenen Chef beraten und es schließlich gelöst.
 Damit ist der Aufbau der serverseitigen Umgebung abgeschlossen. In Bezug auf die Datenbank ist auch das Tabellendesign involviert, daher werden wir dies zum Zeitpunkt der Java-Entwicklung gemeinsam tun.
 Nächstes Mal werde ich die Arbeit um HTML und Bootstrap zusammen veröffentlichen.


Recommended Posts