Déploiement de serveur Tomcat (optimisation) et configuration d'hôte virtuel


Un, serveur Tomcat

1. Introduction

Origine du nom:
Tomcat a été initialement développé par l'architecte logiciel de Sun James Duncan Davidson. Plus tard, il a contribué à le transformer en un projet open source et a contribué à la Apache Software Foundation by Sun.
Comme la plupart des projets open source, O'Reilly en produira un Ce livre est lié à ce livre, et la couverture est conçue comme une esquisse d'un certain animal, il espère donc nommer ce projet d'après un animal
car il espère que cet animal pourra prendre soin de lui-même, et finalement, il l'a nommé Tomcat (anglais Chats mâles ou autres chats mâles)
et le livre d’O’Reilly sur la couverture de Tomcat est également conçu comme un chat mâle, et le logo et la mascotte de Tomcat sont également conçus comme un chat mâle.
marque
En fait, Tomcat a été le premier Il n'a pas été appelé de ce nom pendant le développement. Le nom du premier projet Tomcat était Catalina, donc lorsque nous installerons Tomcat, nous verrons qu'il existe de nombreux catalogues et fichiers liés à Catalina sous le chemin d'installation, et ces fichiers sont généralement utilisés ou configurés par Toncat Documents importants

2. Scénarios d'application

  • Le serveur Tomcat est un serveur d'applications Web gratuit et open source, qui est un serveur d'applications léger. Il est couramment utilisé dans les systèmes de petite et moyenne taille et où il n'y a pas beaucoup d'utilisateurs simultanés. C'est le premier choix pour développer et déboguer des programmes JSP.
  • De manière générale, bien que Tomcat soit le même que les serveurs Web Apache ou Nginx, il a pour fonction de traiter les pages HTML, mais comme sa capacité à traiter du HTML statique est bien inférieure à celle d'Apache ou Nginx, Tomcat est généralement utilisé comme servlet et conteneur JSP, fonctionnant séparément extrémité arrière

Certains supplément

Servlet Java :

  1. Un programme s'exécutant sur un serveur Web ou un serveur d'applications, qui agit comme une couche intermédiaire entre la requête d'un navigateur Web ou d'un autre client HTTP et la base de données ou l'application sur le serveur HTTP
  2. En utilisant Servlet, vous pouvez collecter les entrées utilisateur à partir de formulaires Web, présenter des enregistrements à partir de bases de données ou d'autres sources et créer dynamiquement des pages Web
  3. Similaire à la fonction CGI (Common Gateway Interface)

JSP (Java Server Pages) :

  1. Une technologie de développement Web dynamique
  2. Il utilise des balises JSP pour insérer du code Java dans les pages HTML, et la signature commence généralement par <% et se termine par%>
  3. JSP est un servlet Java, principalement utilisé pour implémenter la partie interface utilisateur d'une application Web Java
  4. JSP obtient les données d'entrée utilisateur via des formulaires Web, accède aux bases de données et à d'autres sources de données, puis crée dynamiquement des pages Web

3. Composants

Tomcat se compose d'une série de composants, dont trois composants de base

Nom traits
Conteneur Web Compléter la fonction du serveur Web
Conteneur de servlet Le nom est catalina, utilisé pour traiter le code Servlet
Conteneur JSP Utilisé pour traduire les pages Web dynamiques JSP en code Servlet

Deux étapes de déploiement de Tomcat

1. Environnement

Voici l'environnement natif:

  • Windows 10 Professional Workstation Edition
  • VMware 16 Pro (16.0.1.0)
  • CentOS 7
  • Source YUM locale
  • La carte réseau est configurée pour obtenir une adresse IP de manière statique
  • L'adaptateur réseau est en mode NAT
  • L'adresse IP est 192.168.126.15
  • apache-tomcat-9.0.16
  • jdk-8u201-linux-x64

2. Préparation

  1. Désactivez le pare-feu et forcez l'accès de contrôle au système après le démarrage
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
  1. JDK doit être installé avant d'installer Tomcat
  • Le nom complet de JDK est (Java Development Kit), qui est un kit de développement de logiciel en langage Java fourni gratuitement par Sun
  • Il contient la machine virtuelle Java (JVM), le programme source Java compilé peut être compilé pour former un bytecode Java
  • Tant que le JDK est installé, la JVM peut être utilisée pour interpréter ces fichiers de bytecode, garantissant ainsi la nature multiplateforme de Java
  • En termes de compatibilité de plate-forme, JDK, en tant que machine virtuelle Java qui interprète les fichiers bytecode et appelle les API du système d'exploitation pour implémenter les fonctions correspondantes, est étroitement lié au type de système d'exploitation et au nombre de plates-formes, il existe donc différents types de versions.
  • Et Tomcat possède également les fonctionnalités ci-dessus, vous devez donc télécharger JDK et Tomcat à l'avance

Portail du progiciel : https://pan.baidu.com/s/1Xl95R5OW4c6oozF4l4zfyA (code d'extraction: 12do)

Après le téléchargement, utilisez Xshell pour faire glisser directement les deux logiciels dans le répertoire / opt
marque

3. Installez JDK, configurez l'environnement Java

  1. Installez directement en utilisant rpm
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
#查看指定文件的文件列表
rpm -ivh jdk-8u201-linux-x64.rpm
#安装
java -version
#显示java运行环境版本

marque
marque

  1. Créer un script pour définir les variables d'environnement JDK
vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
#输出定义java的工作目录
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#输出指定java所需的类文件
export PATH=$JAVA_HOME/bin:$PATH
#输出重新定义环境变量,$PATH一定要放在$JAVA_HOME的后面,让系统先读取到工作目录中的版本信息!


source /etc/profile.d/java.sh
#执行脚本
java -version
#再次查看,检查是否执行成功

marque
marque

supplément La description
CLASSPATH Lors de la compilation et de l'exécution d'un programme Java, JRE recherchera le fichier de classe requis (.class) dans le chemin spécifié par la variable
dj.jar Il s'agit de la bibliothèque de classes de l'environnement d'exploitation, principalement du package swing
tools.jar Principalement certaines bibliothèques d'outils jdk, y compris javac, java, javap, javadoc, etc.
JDK kit de développement java (outil de développement java)
JRE environnement d'exécution java (environnement d'exécution java)
JVM machine java virtuak (machine virtuelle java), afin que les programmes java puissent exécuter des fichiers de classe sur plusieurs plates-formes
  1. Écrivez un simple fichier java pour vérifier à nouveau
vim zxc.java

public class zxc {
    
    
        public static void main(String[] args){
    
    
        System.out.println("Hello world!");
        }
}


javac zxc.java
#进行编译
java zxc
#执行

marque
marque

4. Installez et configurez Tomcat

  1. Décompressez le package
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
  1. Générez un dossier après la décompression, déplacez le dossier vers / usr / local / et renommez-le en tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat
  1. Démarrez Tomcat
/usr/local/tomcat/bin/startup.sh

marque
4. Tomcat s'exécute sur le port 8080 par défaut, vous pouvez exécuter la commande netstat pour afficher les informations surveillées sur le port 8080

[root@localhost opt]# netstat -natp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      16690/java
  1. Ouvrez le navigateur pour accéder au test http://192.168.126.15:8080/
    marque

  2. Si vous souhaitez fermer Tomcat, vous pouvez exécuter la commande suivante

/usr/local/tomcat/bin/shutdown.sh

5. Description du catalogue principal

Le répertoire personnel de Tomcat est / usr / localtomcat

marque

table des matières La description
poubelle Stocke les fichiers de script pour démarrer et arrêter Tomcat sur les plates-formes Windows ou Linux
conf Stockez divers fichiers de configuration globale du serveur Tomcat, dont les plus importants sont server.xml et web.xml
lib Stockez les fichiers de bibliothèque (JARS) nécessaires au fonctionnement de Tomcat, ne modifiez généralement pas, sauf si vous vous connectez à un service tiers, tel que redis, vous devez alors ajouter le package jar correspondant
journaux Stocker le fichier LOG (journal) pendant l'exécution de Tomcat
temp Stocker les fichiers générés lorsque Tomcat est en cours d'exécution
applications Web Le principal répertoire de publication Web de Tomcat (y compris les exemples d’applications) est un répertoire de stockage des ressources du projet
travail Répertoire de travail Tomcat, stockant les fichiers de classe générés après la compilation jsp, généralement utilisé lors de la suppression du cache Tomcat

Troisièmement, configuration de l'hôte virtuel Tomcat

  • Plusieurs fois, l'entreprise a plusieurs projets à exécuter, il est donc certainement impossible d'exécuter plusieurs services Tomcat sur un serveur, ce qui consommera trop de ressources système.
  • À ce stade, vous devez utiliser l'hôte virtuel Tomcat
  • Par exemple, deux nouveaux noms de domaine, www.xcf.com et www.zxc.com sont maintenant ajoutés, et j'espère accéder à différents contenus de projet via ces deux noms de domaine

1. Créez des répertoires et des fichiers

mkdir /usr/local/tomcat/webapps/xcf
mkdir /usr/local/tomcat/webapps/zxc

#在目录下创建默认首页文件,并注入内容,用以测试

echo "Hello Xcf~" > /usr/local/tomcat/webapps/xcf/index.jsp
echo "Hello Zxc~" > /usr/local/tomcat/webapps/zxc/index.jsp

2. Modifiez le fichier de configuration principal Tomcat

vim /usr/local/tomcat/conf/server.xml

#在165行插入以下内容
<Host name="www.xcf.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/xcf" path="" reloadable="true" />
</Host>

<Host name="www.zxc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"    xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/zxc" path="" reloadable="true" />
</Host>

marque

supplément La description
Nom d'hôte Nom du processeur
appBase Répertoire de travail du programme Tomcat, le chemin relatif est webapps, le chemin absolu est / usr / local / tomcat / webapps
décompresser les WAR Décompressez le package de guerre
autoDeploy Demandez à Tomcat d'autoriser le déploiement automatique s'il existe de nouvelles applications Web
xmlValidation S'il faut vérifier le fichier xml pour exécuter l'indicateur de vérification de validité
xmlNamespaceAware Si vous souhaitez activer l'espace de noms xml, définissez cette valeur et xmlValidation sur true, ce qui signifie effectuer un contrôle de validité sur le fichier web.xml
appBase Catalogue d'applications WEB
chemin Définissez l'URI visité sur le répertoire racine de l'application Web
rechargeable S'il faut recharger lorsque le programme est modifié

3. Fermez Tomcat et redémarrez

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

marque

4. Visitez le navigateur pour vérifier

#首先在主机映射文件中追加IP与对应域名
echo "192.168.126.15 www.xcf.com" >> /etc/hosts
echo "192.168.126.15 www.zxc.com" >> /etc/hosts
  • Visitez http://www.xcf.com:8080
    marque
  • Visitez http://www.zxc.com:8080
    marque

Quatrièmement, l'optimisation Tomcat

  • La configuration par défaut de l'installation par défaut de Tomcat n'est pas adaptée à l'environnement de production. Elle peut souvent sembler suspendue et doit être redémarrée. Ce n'est que grâce à des tests de stress et une optimisation continus qu'elle peut fonctionner avec la plus grande efficacité et stabilité.
  • L'optimisation comprend principalement trois aspects: l'optimisation du système d'exploitation (optimisation des paramètres du noyau), l'optimisation des paramètres du fichier de configuration Tomcat et le réglage de la machine virtuelle Java (JVM)

1. Optimiser la vitesse de démarrage

第一次启动查看日志会发现 Tomcat 启动很慢,默认情况下可能会需要几十秒  
可以修改jdk参数进行优化

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security

 #117行
 securerandom.source=file:/dev/urandom
#random和urandom都属于伪终端,都能提供数据流,但是后者速度更快


/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 
#重启生效

2. Les paramètres liés à l'optimisation couramment utilisés sont les suivants:

vim /usr/local/tomcat/conf/server.xml

minSpareThreads="50" 
#最小空闲线程数为50
enableLookups="false"
#不开启反查域名
disableUploadTimeout="true"
#上传时使用超时机制
acceptCount="300" 
#线程数都被占用时,可传入最大连接请求队列为300
maxThreads="500"
#可创建的最大线程数为500
processorCache="500"
#控制Tomcat内部RequestProcessor的缓存池大小,若超过500,则会创建新的RequestProcessor实例
URIEncoding="UTF-8" 
#字符集为UTF-8
compression="on"
#开启对响应的数据进行GZIP压缩
compressionMinSize="2048"
#压缩响应最小值,开启则默认2048,只有大于该值时才会对报文进行压缩
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image /jpg,image/png"/>
#压缩可支持类型

marque

Nom de l'option Paramétrage
maxThreads Tomcat utilise des threads pour traiter chaque demande reçue. Cette valeur représente le nombre maximum de threads que Tomcat peut créer. La valeur par défaut est 200
minSpareThreads Le nombre minimum de threads inactifs, le nombre de threads initialisés au démarrage de Tomcat, signifie qu'il y a tellement de threads vides en attente même si personne ne l'utilise. La valeur par défaut est 10
maxSpareThreads Nombre maximal de threads en attente. Une fois que le nombre de threads créés dépasse cette valeur, Tomcat arrête les threads de socket qui ne sont plus nécessaires. La valeur par défaut est -1 (illimité). Généralement pas besoin de spécifier
Encodage URI 指定 Tomcat Le format de codage d'URL et le format de codage de langue du conteneur ne sont pas aussi faciles à configurer que les autres logiciels de serveur Web et doivent être spécifiés séparément
connnectionTimeout Délai d'expiration de la connexion réseau, unité: millisecondes, mis à 0 signifie ne jamais expirer, ce paramètre a des dangers cachés. Habituellement, la valeur par défaut est 20000 millisecondes
enableLookups S'il faut inverser la vérification du nom de domaine pour renvoyer le nom d'hôte de l'hôte distant, la valeur est: true ou false, si elle est définie sur false, l'adresse IP est renvoyée directement, afin d'améliorer la capacité de traitement, elle doit être définie sur false
disableUploadTimeout Indique s'il faut utiliser le mécanisme de délai d'expiration lors du téléchargement. Doit être défini sur true
connectionUploadTimeout Délai de téléchargement. Après tout, le téléchargement des fichiers peut prendre plus de temps. Ajustez cela en fonction de vos propres besoins professionnels, afin que le servlet ait plus de temps pour terminer son exécution. Il doit être utilisé en conjonction avec le paramètre précédent pour prendre effet.
acceptCount Spécifiez la longueur maximale de la file d'attente pour les demandes de connexion entrantes lorsque tous les threads disponibles pour le traitement des demandes sont utilisés. Les demandes dépassant ce nombre ne seront pas traitées. La valeur par défaut est 100
compression S'il faut effectuer une compression GZIP sur les données de réponse, désactivé: signifie que la compression est interdite; activé: signifie que la compression est autorisée (le texte sera compressé), forcer: signifie que la compression est effectuée dans tous les cas, la valeur par défaut est désactivée, ce qui peut effectivement réduire les pages après la compression des données La taille peut généralement être réduite d'environ 1/3 pour économiser de la bande passante
compressionMinSize Indique la valeur minimale de la réponse compressée. Ce n'est que lorsque la taille du message de réponse est supérieure à cette valeur que le message sera compressé. Si la fonction de compression est activée, la valeur par défaut est 2048
compressableMimeType Type de compression, spécifiez les types de fichiers compressés
noCompressionUserAgents = "gozilla, traviata" Pour les navigateurs suivants, n'activez pas la compression

Vous trouverez ci-dessus quelques paramètres de configuration couramment utilisés, ainsi que de nombreux autres paramètres. Vous pouvez continuer à optimiser
les valeurs d'attribut de paramètre de HTTP Connector et AJP Connector. Vous pouvez consulter la description détaillée du document officiel pour en savoir plus.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51486343/article/details/112746276
conseillé
Classement