[JAVA] La voie de la création de services Web (partie 2)

Dernier synopsis

Nous avons parlé du processus de création d'un service Web et de l'aperçu du service. Pour plus d'informations, cliquez ici "La route vers la création de services Web (partie 1)".

Contenu de cette époque

Cette fois, je publierai le travail de construction de l'environnement serveur. Le contenu du travail est le suivant. ・ Installation du système d'exploitation ・ Installation JDK -Installation et paramètres de démarrage automatique de tomcat et Apache httpd -Paramètres du gestionnaire d'applications Web pour un déploiement facile sur tomcat ・ Coopération entre tomcat et Apache httpd Permet de transmettre le traitement à tomcat en accédant à Apache

Pourquoi avez-vous choisi Apache au lieu du Nginx branché? C'est parce que, suite à l'examen du contenu du service et des fonctionnalités de cette époque, j'ai pensé qu'Apache était préférable. Nginx semble avoir été créé pour résoudre le problème C10K d'Apache, mais ce service n'est pas un service auquel 10 000 personnes peuvent accéder en même temps. Et bien que Nginx piloté par les événements consomme moins de mémoire et soit plus rapide, il n'a pas beaucoup de fonctionnalités depuis le début. Comme Apache a depuis le début de nombreuses fonctions de serveur Web, j'ai pensé qu'il serait facile pour moi, qui suis inexpérimenté, de le construire sans le travail.

Environnement

Installation du système d'exploitation

Installer CentOS 7.4 sur VMware

Suivez les étapes du lien ci-dessus pour installer CentOS sur VMware. J'utilise généralement CentOS comme système d'exploitation principal. Cela peut être Ubuntu s'il est populaire, mais comme Linux est utilisé uniquement à des fins de serveur en premier lieu, l'interface graphique n'est pas utilisée principalement. Par conséquent, je ne trouve pas Ubuntu attrayant. De plus, je me sens mal à l'aise avec Ubuntu, qui est fréquemment mis à jour. CentOS est un clone RHEL qui a un sens de la stabilité et est fréquemment utilisé par les entreprises pour une utilisation en entreprise, je voudrais donc m'y habituer pour l'avenir. Cependant, la raison principale est que c'est le plus simple à utiliser avec RHEL sur le terrain.

Installation du JDK

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

utilisateur tomcat créé

Créez un utilisateur dédié à tomcat pour la sécurité sans créer de shell de connexion

# useradd -s /sbin/nologin tomcat

télécharger tomcat

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

Vous pouvez l'installer avec yum, mais tomcat7 est installé par défaut. Vous pouvez installer la dernière version en modifiant le référentiel yum, mais c'est un problème, alors téléchargez et décompressez le package directement.

Déployer Tomcat

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

Créer un lien symbolique

Gérez le répertoire tomcat avec des liens symboliques en tenant compte des changements de version

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

Définition des variables d'environnement

Ajout du contenu suivant

# 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

Réfléchir

# source /etc/profile

Confirmation de réflexion

# /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

paramètres du pare-feu

Vérifiez les paramètres actuels

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

ssh dhcpv6-client

Ajouter tomcat ici

Ajout de service Créez un nouveau fichier et ajoutez le contenu suivant

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



Apache Tomcat 9 Apache Tomcat 9 ```

Refléter les paramètres

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

Vérification

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

Désactiver SELinux

SELINUX a été remplacé par désactivé

# 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

Redémarrer

# reboot

Vérifiez les paramètres après le redémarrage

# getenforce
  Disabled

démarrer tomcat

# /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.

Confirmer le démarrage avec le navigateur http://localhost:8080 https://gyazo.com/56aab39d87ab6e6c5b058efd195376e0

paramètre de démarrage automatique de tomcat

Créer un fichier de service tomcat avec un nouveau fichier

# 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


 Réfléchir

systemctl daemon-reload


 Démarrage automatique activé

systemctl enable tomcat


 utilisateur, groupe changé en tomcat

chown -R tomcat:tomcat /opt/tomcat



 Confirmation du démarrage automatique

reboot


 Vérifiez l'état après le redémarrage. Doit être actif.

systemctl status tomcat

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


 Au cas où, vérifiez l'affichage avec un navigateur PC
 http://[IPアドレス]:8080

### Paramètres du gestionnaire d'applications Web
 Rendre possible le déploiement et la gestion des applications Web à l'aide de l'interface graphique.
 Ajoutez la description suivante au fichier. * XXXX est le nom et le chemin de l'administrateur que vous souhaitez définir


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


```

Permet l'accès à partir de terminaux externes. Actuellement, il n'est accessible qu'à partir de l'hôte local, modifiez donc le paramètre d'autorisation.

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





 Redémarrez et reflétez les paramètres

systemctl restart tomcat


 Accès de l'extérieur
 http://IPアドレス:8080/manager/html
[![https://gyazo.com/fd312f8dc485aa6a6e44b7270cc5b0a7](https://i.gyazo.com/fd312f8dc485aa6a6e44b7270cc5b0a7.png)](https://gyazo.com/fd312f8dc485aa6a6e44b7270cc5b0a7)

 S'il est affiché en toute sécurité, c'est OK

### Installation et configuration d'Apache httpd
 Installation

yum install httpd


 Vérification

httpd -version

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


 paramètres du pare-feu

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

firewall-cmd --reload


 Paramètres de démarrage automatique d'Apache

systemctl enable httpd


 Vérifier les paramètres
 Assurez-vous qu'il est activé

systemctl status httpd

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


 Confirmation du démarrage du service
 Vérifiez l'état après le redémarrage

systemctl status httpd

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



### Coopération entre Apache et Tomcat en utilisant le protocole AJP

 Confirmez que le protocole AJP est défini


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


```

Paramètre d'activation du module Vérifiez les deux modules suivants. S'il est commenté, prenez un commentaire.

# 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


 Avec cela seul, je l'ai juste activé, j'ai donc ajouté un paramètre pour transmettre toutes les requêtes Apache httpd à tomcat.

ProxyPass / ajp://localhost:8009/


 Redémarrez Apache httpd et confirmez le démarrage

systemctl restart httpd

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

 Confirmez qu'il est passé d'Apache httpd et que tomcat peut être démarré sans définir le port sur 8080

 Pour ce travail, l'accès externe au gestionnaire d'applications Web de tomcat était le point clé. La plupart des fichiers de paramètres ont été stockés au mauvais endroit, et j'ai consulté mon patron expérimenté et je l'ai finalement résolu.
 Ceci termine la construction de l'environnement côté serveur. En ce qui concerne la base de données, la conception des tables est également impliquée, nous le ferons donc collectivement au moment du développement de java.
 La prochaine fois, je publierai le travail autour de html et Bootstrap ensemble.


Recommended Posts