Comment déployer Tomcat et Nginx sur un serveur Linux
May 13, 2023 pm 06:58 PM1. Préparation
Vous devez d'abord disposer d'un serveur Linux pouvant être joué, conna?tre le nom d'utilisateur et le mot de passe, puis vous devez installer les deux sur votre ordinateur Windows Outils pouvant se connecter au serveur Linux, xshell 5 et xftp 5, le tutoriel d'installation n'entrera pas dans les détails, l'image supplémentaire montre comment se connecter au serveur :
L'interface de connexion xshell est comme suit, entrez l'adresse IP de l'h?te et cliquez sur OK, xshell Une fenêtre appara?tra pour entrer votre nom d'utilisateur et votre mot de passe pour vous connecter avec succès?!
Vous pouvez comprendre la différence entre cela et sftp dès que vous le savez?!
2. Travaux d'installation et de déploiement
Pour déployer le projet sur le serveur Linux , il est indispensable d'installer jdk et tomcat. Ce qu'il faut souligner ici, c'est que si vous souhaitez déployer plusieurs applications sur un serveur, vous devez avoir son propre tomcat pour chaque application, car sous différentes applications, la configuration de tomcat est définitivement différente. différent. Dans ce cas, vous pouvez installer un répertoire d'installation de Tomcat et le répertoire de travail de Tomcat sous plusieurs applications. Pour les mêmes parties, vous pouvez partager le répertoire d'installation de Tomcat. Ce qui suit explique en détail comment installer Tomcat. et jdk sur votre serveur Créez un nouveau répertoire de cette manière et placez certains fichiers liés au démarrage du projet et à l'accès au déploiement sous ce répertoire. Comme vous pouvez le voir, j'ai placé plusieurs versions de jdk et plusieurs versions de Tomcat sous ce répertoire. le processus de déploiement du projet, quels Tomcat et jdk utiliser peuvent être obtenus via la configuration.
Pour les applications réelles, nous les mettons dans un répertoire d'instance, établissons le nom de chaque application, puis pla?ons la guerre correspondante sous le package de répertoire, et les fichiers décompressés, en attendant que Tomcat lise le répertoire pour déployer l'application, comme suit?: Modifier la configuration
Nous pla?ons également le tomcat sous chaque application dans un répertoire pour une gestion facile, comme indiqué ci-dessous, mais vous devez faire attention à la configuration de chaque tomcat# ????#
Sous le répertoire /bin, le fichier start.sh et le fichier stop.sh doivent être modifiés. Tout d'abord, vous devez spécifier le chemin jdk, ce qui est similaire à la configuration des variables d'environnement. La deuxième étape consiste à spécifier le chemin Tomcat du répertoire de travail Tomcat. Vous pouvez remarquer que catalina_home et catalina_base correspondent respectivement au répertoire d'installation et au répertoire de travail de Tomcat. ligne indiquant que le projet démarre en utilisant start.sh sous le répertoire d'installation, mais le projet démarre. Le fichier de configuration Tomcat utilisé est le fichier de configuration configuré par chaque application Tomcat. La même chose est vraie pour stop.sh.
Pour utiliser xshell pour exécuter ./start.sh et ./stop.sh, des autorisations sont requises. S'il n'y a pas d'autorisation, nous pouvons utiliser. xftp Pour modifier les autorisations de l'e-mail start.sh, cochez la case comme indiqué sur l'image.
Sous le répertoire /conf, vous devez faire attention aux configurations modifiées. La première est le fichier server.xml, modifiez le numéro de port correspondant. , et le tomcat de chaque application. Différents numéros de port doivent être modifiés, sinon le port sera occupé lors du démarrage de plusieurs tomcats et ne pourra pas être démarré. Il est préférable de se souvenir du numéro de port de tomcat configuré pour cette application, qui sera utilisé. plus tard lors de l'utilisation de nginx pour le mappage de ports?; #?? ??#
Un autre endroit à modifier est le fichier root.xml dans le répertoire localhost sous le répertoire catalina. utilisé pour spécifier quel Tomcat doit être chargé au démarrage. Exemples de projets dans le répertoire
Les autres répertoires /logs, /temp, /webapps et /work n'ont pas besoin d'être modifiés ; comme le montre ce qui précède, la division des répertoires est très claire et ils sont divisés en répertoires d'installation de services ( jdk, tomcat, nginx, etc.), le répertoire d'instance d'application et le répertoire de déploiement d'application peuvent également être divisés de cette manière lorsque vous utilisez le serveur Linux pour déployer plusieurs projets.
3.nginx implémente le proxy inverse du port 80
Logiquement parlant, à ce stade, nous pouvons transférer le package war de notre propre application vers le répertoire correspondant pour le décompresser, puis l'exécuter dans le répertoire de travail de l'application Tomcat correspondante. /start.sh pour démarrer le projet?! Autant essayer d'abord.
Une fois le projet déployé, nous configurons les h?tes et commen?ons à accéder. à ce moment-là, nous constaterons que nous devons ajouter le numéro de port Tomcat configuré ci-dessus avant de pouvoir y accéder. Ne pouvons-nous pas ajouter le numéro de port (utiliser celui par défaut). port 80 ) visite ? Comme mentionné ci-dessus, nous avons configuré différents numéros de port pour différents Tomcats. La raison en est qu'un seul numéro de port ne peut être utilisé que par un seul Tomcat. Cela signifie que l'accès au projet doit ajouter des numéros de port pour l'accès. Il est également possible qu'une application utilise le port 80 pour l'accès. C'est à ce moment-là que nginx est utilisé. Après avoir installé nginx, nous pouvons ajouter certaines configurations pour obtenir un proxy inverse et transférer l'accès au port 80 utilisé par différentes applications vers le numéro de port correspondant. Du point de vue de Tomcat, les requêtes externes utilisent toujours le numéro de port configuré par Tomcat, ce qui permet d'obtenir l'effet souhaité. La configuration spécifique est la suivante (bien s?r, nous devons également effectuer le travail de division de répertoire correspondant) :
Le répertoire nginx. est la suivante?:
Nous devons uniquement nous soucier du fichier de configuration nginx.conf dans le répertoire /conf. J'ai également ouvert les informations de configuration spécifiques pour que tout le monde puisse les voir. Avez-vous remarqué la dernière ligne "inclure les domaines/". *"? Indique que la configuration n'est pas encore terminée, y compris tous les fichiers de configuration dans le répertoire /domains,
à ce stade, nous pouvons configurer la configuration nginx correspondante de chaque application avec des fichiers avec des noms différents
Voyons ensuite comment le configurer. écoutez l'accès au nom de domaine sur enchères.center.jd.net:80, puis transférez-le vers le port 1605 de 127.0.0.1 de la machine locale. peut également voir que pour certains états anormaux, tels que http_500, http_502, http_504, etc. seront enregistrés et traités différemment. Généralement, vous pouvez accéder à la page d'accueil du site Web, etc., puis enregistrer le journal après avoir configuré ce fichier de configuration. , il ne faut pas oublier de créer un nouveau répertoire de log, sinon nginx ne pourra pas le trouver. Allez dans le répertoire et une erreur sera signalée au démarrage.
Après avoir terminé ces taches, nous n'avons pas encore terminé. Nous devons redémarrer nginx. Je n'entrerai pas dans les détails sur la fa?on de redémarrer. Il existe de nombreuses informations connexes sur Baidu. Si le redémarrage échoue, prenons simplement. une étape difficile et tuez le processus nginx. Utilisez ensuite la commande nginx service start pour démarrer le service nginx.
Une fois ces taches terminées, pouvons-nous utiliser la méthode familière (sans ajouter de numéro de port) pour y accéder ? Oui, c'est vrai, beaucoup de gens se demandent s'ils doivent à nouveau redémarrer Tomcat pour déployer une application. signifie seulement que vous ne comprenez pas la couche de conversion de routage nginx de la couche réseau. Le nom de domaine que nous visitons effectue d'abord la résolution DNS via les h?tes que nous avons configurés, le convertit en l'adresse IP correspondante, trouve le serveur correspondant à l'adresse IP et transmet l'adresse IP correspondante. le pare-feu du serveur, puis lorsque nous configurons nginx sur le serveur, nginx interceptera d'abord la requête, traitera et distribuera la requête, et enfin frappera le tomcat correspondant (compréhension personnelle, je ne le comprends peut-être pas bien, veuillez ne pas vous plaindre), en ce moment Nous pouvons désormais accéder au nom de domaine et envoyer des demandes en toute confiance ! !
4. Montez sur la fosse
Euh. . pas bon ! ! J'étais ravi et j'ai sauté sur la page d'accueil, mais je n'ai toujours pas pu accéder à l'application spécifiée. Lorsque j'ai essayé d'ajouter le numéro de port, j'ai pu y accéder "miraculeusement". Cela signifie que le nginx que nous avons configuré n'a pas pris effet. est le problème ?
Permettez-moi de parler de mes idées de résolution de problèmes ci-dessous. Tout d'abord, nous devons confirmer que toutes les demandes vont à nginx. à ce stade, les avantages des journaux se reflètent lorsque nous utilisons le port 80 pour accéder à notre application. les journaux. Une, deux fois, trois fois. . Il n'y a pas de journal pour le moment, nous pouvons conclure à peu près que le service nginx n'a pas été utilisé du tout. Nous ne pouvons pas être s?rs que le service nginx n'a pas pris effet sur le serveur. à ce moment-là, j'ai fait une opération audacieuse : désactiver l'accès au service nginx, ou accéder à la page d'accueil du site Web. Le passage à la page d'accueil n'est-il pas configuré via nginx?? En effet, l'entreprise l'a déjà traité au niveau réseau. A cette époque, j'étais très confus. Il s'agissait simplement de diverses tentatives, autant modifier la configuration de Tomcat et configurer l'une des applications sur le port 80. afin qu'il soit toujours accessible. Bient?t, la modification a été terminée. Après l'avoir déployé, j'ai juste attendu que le nom de domaine soit saisi dans la barre d'adresse pour y accéder. Car le service nginx a été fermé, la demande à ce moment-là. doit être envoyé directement à Tomcat. J'y ai accédé une, deux fois et trois fois, miraculeusement, je n'ai pas pu y accéder. ? ? à ce moment-là, j'ai eu un éclair d'inspiration. Il se peut que le pare-feu du serveur ait désactivé le port 80. J'ai rapidement essayé de communiquer localement avec Telnet 192.168.108.37 80. Il s'est avéré que je ne pouvais pas y accéder, ce qui a prouvé que c'était ma supposition. était correct. C'était facile à gérer à ce moment-là. J'avais juste besoin de l'activer dans le pare-feu. L'accès au port 80 est suffisant. Vous trouverez ci-dessous un supplément sur la fa?on de configurer le pare-feu iptables pour ouvrir le port 80 sous centos.
1. Ouvrez le fichier de configuration d'iptables, le code est le suivant : vi /etc/sysconfig/iptables
2. Utilisez la commande /etc/init.d/iptables status pour vérifier si le port 80 est ouvert Sinon. , il existe deux méthodes de traitement
3. La première fa?on : Modifier la commande vi /etc/sysconfig/iptables pour ajouter le pare-feu pour ouvrir le port 80. Le code est le suivant :
Copiez le code Le code est le suivant :
-a rh-firewall-1-input -m state --state new -m tcp -p tcp --dport 80 -j accept
4. Le code pour fermer/activer/redémarrer le pare-feu est le suivant?: / etc/init.d/iptables stop (#start pour ouvrir, #restart pour redémarrer)
5. La deuxième fa?on : ajoutez le port via la commande, le code est le suivant :
[root@centos httpd]# /sbin/iptables -i input -p tcp --dport 80 -j accept [root@centos httpd]# /etc/rc.d/init.d/iptables save [root@centos httpd]# /etc/init.d/iptables restart
6. Visualisez l'effet : [ root@centos httpd]# /etc/init.d/iptables status
7. De plus, il est recommandé d'utiliser la première Les deux méthodes sont faciles à utiliser et ont un taux de réussite élevé. Prenez-moi comme exemple. J'utilise la première méthode pour modifier la configuration du pare-feu, le redémarrage échoue. Lorsque j'utilise la deuxième méthode, cela réussit parfaitement
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1. Le premier choix pour la combinaison Laravel Mysql Vue / React dans la communauté de questions et réponses de développement PHP est le premier choix pour la combinaison Laravel Mysql Vue / React, en raison de sa maturité dans l'écosystème et de l'efficacité de développement élevée; 2. Les performances élevées nécessitent une dépendance à la cache (redis), une optimisation de la base de données, des files d'attente CDN et asynchrones; 3. La sécurité doit être effectuée avec le filtrage d'entrée, la protection CSRF, les HTTP, le cryptage de mot de passe et le contr?le d'autorisation; 4. Publicité facultative, abonnement aux membres, récompenses, commissions, paiement des connaissances et autres modèles, le noyau est de faire correspondre le ton communautaire et les besoins des utilisateurs.

En tant que pionnier dans le monde numérique, le nom de code unique de Bitcoin et la technologie sous-jacente ont toujours été au centre de l’attention des gens. Son code standard est BTC, également connu sous le nom de XBT sur certaines plateformes qui répondent aux normes internationales. D'un point de vue technique, Bitcoin n'est pas un style de code unique, mais un projet logiciel open source énorme et sophistiqué. Son code principal est principalement écrit en C et intègre la cryptographie, les systèmes distribués et les principes économiques, afin que n'importe qui puisse voir, examiner et contribuer son code.

LinuxCanrunonModesthardwarewithSpecificminimumRequirements.A1GHZProcessor (x86orx86_64) est ensemble, avec-corecpureComend.r.R AmshouldBeatleast512MBForCommand-lineUseor2gbfordesktopenvironments.

Le r?le principal de Homebrew dans la construction de l'environnement Mac est de simplifier l'installation et la gestion des logiciels. 1. Homebrew gère automatiquement les dépendances et encapsule les processus de compilation et d'installation complexes en commandes simples; 2. Fournit un écosystème de package logiciel unifié pour assurer la normalisation de l'emplacement et de la configuration de l'installation logicielle; 3. Intègre les fonctions de gestion des services et peut facilement démarrer et arrêter les services via BrewServices; 4. Mise à niveau et maintenance des logiciels pratiques et améliore la sécurité et les fonctionnalités du système.

Pour permettre aux conteneurs PHP de prendre en charge la construction automatique, le noyau réside dans la configuration du processus d'intégration continue (CI). 1. Utilisez Dockerfile pour définir l'environnement PHP, y compris l'image de base, l'installation d'extension, la gestion de la dépendance et les paramètres d'autorisation; 2. Configurez des outils CI / CD tels que GitLabci et définissez les étapes de construction, de test et de déploiement via le fichier .gitlab-ci.yml pour réaliser une construction, un test et un déploiement automatique; 3. Intégrer des cadres de test tels que PHPUnit pour s'assurer que les tests sont automatiquement exécutés après les modifications du code; 4. Utiliser des stratégies de déploiement automatisées telles que Kubernetes pour définir la configuration de déploiement via le fichier de déploiement.yaml; 5. Optimiser Dockerfile et adopter une construction en plusieurs étapes

La construction d'un environnement de conteneur de taches PHP indépendant peut être implémentée via Docker. Les étapes spécifiques sont les suivantes: 1. Installez Docker et DockerCose comme base; 2. Créez un répertoire indépendant pour stocker les fichiers Dockerfile et Crontab; 3. écrivez Dockerfile pour définir l'environnement PHPCLI et installer Cron et les extensions nécessaires; 4. écrivez un fichier crontab pour définir les taches de synchronisation; 5. écrivez un répertoire de script Docker-Compose.yml et configurer les variables d'environnement; 6. Démarrez le conteneur et vérifiez le journal. Par rapport à l'exécution de taches de synchronisation dans des conteneurs Web, les conteneurs indépendants présentent les avantages de l'isolement des ressources, de l'environnement pur, de la forte stabilité et de l'expansion facile. Pour assurer la journalisation et la capture d'erreur

Confirmez le nom du périphérique du disque dur cible (tel que / dev / sda) pour éviter de supprimer accidentellement le disque système; 2. Utilisez sudoddif = / dev / zeroof = / dev / sdxbs = 1mstatus = progresser pour écraser la valeur zéro dans le disque complet, qui convient à la plupart des scénarios; 3. Utilisez Sudoshred-V-N3 / Dev / SDX pour trois augmentations de données aléatoires pour vous assurer qu'elle ne peut pas être restaurée; 4. Exécuter éventuellement SudObAdBlocks-Wsv / Dev / SDX pour les tests d'écriture destructeurs; Enfin, utilisez SudoHExDump-C / Dev / SDX | Head pour vérifier si tout est zéro et une efface complète en toute sécurité.

Ajoutez des commandes userAdd ou AddUser couramment utilisées par les utilisateurs de Linux. 1. Lorsque vous utilisez UserAdd, vous devez définir manuellement le mot de passe et le répertoire domestique. Ajoutez le paramètre -M pour créer le répertoire domestique; 2. Vous pouvez spécifier le shell, le groupe et l'UID via des paramètres tels que -s, -g et -u; 3. AddUser est une commande interactive, adaptée aux novices pour terminer automatiquement la configuration; 4. Faites attention aux autorisations, aux autorisations d'unicité du nom d'utilisateur et aux autorisations du répertoire de la maison; 5. UserDel peut être utilisé pour supprimer les utilisateurs et le répertoire domestique par erreur. La ma?trise de ces points clés vous permet de gérer les utilisateurs efficacement et en toute sécurité.
