Maison > Article > Opération et maintenance > Déploiement serveur de Tomcat et Nginx
1. Préparation
Vous avez d'abord besoin d'un serveur Linux, connaissez le nom d'utilisateur et le mot de passe, puis vous devez installer un Ordinateur Windows Installez deux outils pouvant se connecter au serveur Linux, Xshell 5 et Xftp 5. Je n'entrerai pas dans le tutoriel d'installation. L'image supplémentaire montre comment se connecter au serveur :
<.> L'interface de connexion xshell est la suivante, entrez. Après avoir confirmé l'adresse IP de l'hôte, cliquez sur OK, et xshell ouvrira une fenêtre pour saisir le nom d'utilisateur et le mot de passe pour vous connecter avec succès !
Vous pouvez le comprendre !
2. Travaux d'installation et de déploiement
Pour déployer le projet sur Sur un serveur Linux, il est indispensable d'installer jdk et tomcat. Ce que je tiens à 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 différent sous l'application, la configuration de Tomcat est définitivement différente. Dans ce cas, vous pouvez installer un répertoire d'installation Tomcat et des répertoires de travail Tomcat sous plusieurs applications, vous pouvez partager le répertoire d'installation Tomcat. Les détails seront présentés ci-dessous. , comment installer Tomcat et jdk sur votre serveur
1 Division de l'annuaire
C'est une étape très importante. consiste à créer un nouveau répertoire comme indiqué dans la figure ci-dessous. Sous ce répertoire se trouvent certains fichiers liés au démarrage du projet et à l'accès au déploiement. Comme vous pouvez le voir, j'ai placé plusieurs versions de jdk et plusieurs versions de tomcat, dont tomcat et jdk. sont utilisés lors du déploiement du projet et peuvent être configurés via la configuration.Pour les applications réelles, nous les plaçons spécifiquement dans un répertoire d'instance, établissons le nom de chaque application, puis plaçons le package war correspondant, et les fichiers décompressés, en attendant que Tomcat lise le répertoire pour déployer l'application, comme suit :
2 .Modifiez le configuration
Nous plaçons également le tomcat sous chaque application dans un répertoire pour une gestion facile, comme indiqué ci-dessous, mais il faut 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. Deuxièmement, spécifiez 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 que le projet démarre en utilisant start.sh dans le répertoire d'installation. Cependant, le fichier de configuration Tomcat utilisé pour le démarrage du projet est le fichier de configuration configuré par chaque application Tomcat. La même chose est vraie pour stop.sh.
Des autorisations sont requises pour exécuter ./start.sh et ./stop.sh en utilisant xshell. S'il n'y a pas d'autorisation, nous pouvons utiliser xftp. peut modifier les autorisations de l'e-mail start.sh, comme indiqué sur la figure, il suffit de cocher.
Sous le répertoire
/conf, vous devez faire attention aux modifications de configuration. La première est le fichier server.xml, modifiez le port correspondant. numéro, et chaque application Tomcat doit modifier des numéros de port différents, 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é dans cette application, qui sera utilisé plus tard lors du démarrage. utiliser nginx pour le mappage des ports ; Une autre chose à modifier est le fichier ROOT.xml dans le répertoire localhost sous le répertoire Catalina. Ce fichier est utilisé pour spécifier le répertoire à charger au démarrage de Tomcat. Les autres répertoires /logs, /temp, /webapps et /work n'ont pas besoin d'être modifiés, ils peuvent également être vus ; à partir de ce qui précède, la division du répertoire est très claire, divisée en répertoire d'installation des services (jdk, tomcat, nginx, etc.), répertoire d'instance d'application et répertoire de déploiement d'application. Lorsque vous utilisez le serveur Linux pour déployer plusieurs projets, vous pouvez également. divisez-le de cette façon. 3.nginx implémente le proxy inverse du port 80 Logiquement parlant, ceci à ce moment-là le temps, nous pouvons transférer le package war de notre propre application dans le répertoire correspondant et le décompresser, puis accéder au répertoire de travail tomcat de l'application correspondante et exécuter ./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 à y 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 un numéro de port (en utilisant le port par défaut 80) pour l'accès ? Comme mentionné ci-dessus, nous avons configuré différents numéros de port pour différents Tomcats. La raison 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 quelques configurations pour obtenir un proxy inverse et transférer l'accès au port 80 utilisé par différentes applications vers le correspondant. Numéro de port. Du point de vue de Tomcat, les requêtes externes utilisent toujours le numéro de port configuré par Tomcat, ce qui produit 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 le suivant : Nous devons uniquement nous soucier du fichier de configuration nginx.conf sous 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, "include domains/*", qui signifie que la configuration n'est pas encore terminée et inclut tous les fichiers de configuration dans /domains. répertoire, À ce stade, nous pouvons configurer la configuration nginx correspondante de chaque application avec des fichiers nommés différemment 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 pour l'accès. Nous pouvons également voir dans la configuration Oui, pour certains états anormaux, tels que http_500 http_502 http_504, etc., ils seront enregistrés et traités différemment. Généralement, vous pouvez accéder à la page d'accueil du site Web. , etc., puis enregistrez le journal. Après avoir configuré ce fichier de configuration, il ne faut pas l'oublier. Créez un nouveau répertoire de journaux, sinon nginx ne trouvera pas le répertoire et signalera une erreur au démarrage. Après avoir terminé ces tâches, 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 y a beaucoup d'informations pertinentes sur Baidu, si le redémarrage échoue, prenons simplement une mesure difficile et tuons le processus nginx, puis utilisons la commande nginx service start pour démarrer le service nginx. Après avoir fait tout ce travail, pouvons-nous y accéder de la manière habituelle (sans ajouter de numéro de port) Oui, oui, c'est vrai, beaucoup de gens s'inquiètent. redémarrer Tomcat et redéployer les applications. Cela 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 et le convertit en IP correspondante. correspondant à l'IP, passer par le pare-feu du serveur, puis lorsque nous configurerons 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, peut-être compréhension Ce n'est pas en place mais ne vaporisez pas), nous pouvons alors accéder en toute confiance au nom de domaine et envoyer des demandes ! ! 4. Entrez dans 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 ? Laissez-moi parler de mes idées de résolution de problèmes. Tout d'abord, nous devons confirmer que toutes les demandes vont à Nginx. C'est à ce moment-là que les avantages des journaux se reflètent. pour y accéder Quand on l'applique, on regarde le journal, deux, 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 est terminée. Après l'avoir déployé, il suffit d'attendre que le nom de domaine soit saisi dans la barre d'adresse pour y accéder. Le service Nginx étant fermé, la demande doit être effectuée à ce moment-là. être directement envoyé à Tomcat. L'accès est une, deux fois et trois fois, il n'est pas accessible. ? ? À 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 iptables, le code est le suivant : vi /etc/sysconfig/iptables 2. Passez /etc /init.d/iptables status, commande pour demander si le port 80 est ouvert. Sinon, il existe deux méthodes pour gérer 3. La première méthode : modifier le vi /etc/. Commande sysconfig/iptables pour ajouter Faire en sorte que le pare-feu ouvre le port 80, le code est le suivant : 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 : ajouter le port via la commande , le code est le suivant : 6 Vérifiez l'effet : [root@centos httpd]# /etc/init.d/iptables status. 7. De plus, il est recommandé d'utiliser la deuxième méthode. Cette méthode est facile à utiliser et a un taux de réussite élevé. Prenez-moi comme exemple lorsque j'utilise la première méthode. modifier la configuration du pare-feu, le redémarrage échoue. Lorsque j'utilise la deuxième méthode, cela réussit parfaitement Résumé Le résultat final est également attendu. Même si Tomcat est configuré avec le port 1605, nous pouvons toujours utiliser le port 80 Access, c'est la puissance de nginx, mais un package d'installation de seulement quelques mégaoctets peut en fait. jouer tellement de rôles. Je viens de commencer à apprendre nginx, et ma compréhension est très rudimentaire, mais grâce à cette pratique, j'ai une bonne impression de nginx, lentement, j'apprendrai à me connaître (même si nous ne pouvons pas nous connaître. les uns les autres et s'aimer). -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
[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
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!