nginx - Quels sont les scénarios applicables au déploiement du package WAR du projet JAVA?
typecho
typecho 2017-06-17 09:17:11
0
2
2083

Lors du déploiement de projets, j'utilise toujours des dossiers pour déployer des projets. Récemment, j'ai essayé d'utiliser le déploiement de projets du package WAR et j'ai rencontré les problèmes suivants :

  • Spécifiez le chemin local de l'emplacement du fichier téléchargé, mais comme il est indépendant du projet, vous devez configurer le projet séparément pour y accéder

  • Lorsque l'entreprise a un grand nombre de projets (environ 200 pour un serveur, environ 20 serveurs), chaque projet est configuré ainsi, et les travaux d'exploitation et de maintenance sont très lourds

  • Un seul fichier CSS ou JS a été ajusté lors de la maintenance, mais il a dû être reconditionné et publié

Par rapport à la méthode du dossier précédente, c'est vraiment gênant. J'aimerais demander aux étudiants expérimentés :

.
  1. Quels scénarios d'application avez-vous rencontrés en utilisant les packages WAR ?

  2. Comment résoudre le problème que j'ai rencontré ?

typecho
typecho

Following the voice in heart.

répondre à tous(2)
刘奇

Voici mon expérience réelle d'exploitation et de maintenance :

  1. La configuration doit être indépendante du projet, afin que le package war ne puisse être créé qu'une seule fois et appliqué à différents environnements

  2.  ;
  3. Utilisez des outils d'exploitation et de maintenance automatisés tels que SaltStack, Ansible ou Jenkins pour vous aider à effectuer des opérations par lots

  4.  ;
  5. Si vous vous attendez à ce que les ressources statiques changent fréquemment, il est préférable de les séparer du projet Java et de les déployer sur différents sites, ou d'utiliser nginx pour les détourner

  6.  ;
  7. Il est recommandé de déployer le programme pour décompresser le fichier war (au lieu de laisser Tomcat le décompresser tout seul), d'arrêter Tomcat, d'utiliser ln -s pour diriger le répertoire ROOT vers un nouveau répertoire, puis de démarrer Tomcat, afin que Tomcat fonctionnera plus facilement ;

  8. Ne supprimez pas l'ancien répertoire pour l'instant. Si le déploiement est incorrect, utilisez ln -s pour basculer le répertoire ROOT vers l'ancien afin d'obtenir une restauration rapide.

大家讲道理

Expérience pratique :
Les projets que j'ai traités sont tous publiés sous forme d'annuaires sur weblogic. Structure des annuaires :

.
DOMAINS                   --域
└─domainA                 --域A
    └─apps                --应用
        └─app1            --应用1
            ├─deploy      --部署
            │  ├─src      --Java源代码(仅限项目实施开发的源代码,不包含应用库的源代码),服务器统一编译一次防止Java版本问题以及编码问题
            │  └─war      --标准war包结构
            ├─patch       --增量更新目录
            ├─runtime     --运行时目录,日志,用户文件之类的
            └─tmp         --临时目录
       

J'ai écrit plusieurs scripts shell selon cette structure standard pour automatiser les tâches d'exploitation et de maintenance, telles que le démarrage, l'arrêt, la surveillance, la mise à jour, etc. Cela n'a en fait pris que quelques jours et il n'y avait pas beaucoup de code, mais maintenant je ne le fais plus jamais manuellement à nouveau. Sur les questions d'exploitation et de maintenance.

Le processus de base est le suivant : soumission du développement de code-->Exportation SVN du package de mise à jour incrémentielle-->téléchargement sur le serveur-->exécution sur le serveur

Si vous modifiez une page HTML, vous devez la reconditionner. Que faire si vous saisissez le mauvais fichier ? Les statiques peuvent être publiés séparément, donc si je change simplement un JAVA, je dois le reconditionner, et je le mérite ?

Aucun conteneur ne publie et ne sert réellement d'applications dans un package war. Elles sont toutes décompressées dans un emplacement temporaire. Le package war est dans un format compressé. Vous devez laisser n'importe quel conteneur lire les ressources du fichier compressé à chaque fois qu'il répond à une requête. Il y aura des problèmes de performances (au moins pour JSP).

C'est ma solution personnelle pour certains petits projets. Pour les grands projets, vous aurez peut-être besoin d'une chaîne d'outils complète, qui est une intégration continue ou quelque chose du genre.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!