当前位置:网站首页>Déploiement du projet (version abrégée)
Déploiement du projet (version abrégée)
2022-07-23 11:04:00 【Bleuet】
Déploiement du projet frontal,Et le déploiement de projets d'arrière - plan

Serveur de déploiement frontal: Nginx
Serveur de déploiement d'arrière - plan: Tomcat(Embedded)

Sur le serveurA(192.168.*.*)Installation moyenneNginx,Télécharger les fichiers emballés à l'avant surNginxDehtmlSous la table des matières
ModifierNginxProfilnginx.conf
Oui.nginx.confDans le profil,Mettre l'ancien moniteur80, 82, 8080Numéro de port L'hôte virtuel de,Introduire les informations de configuration suivantes:
server {
listen 80;
server_name localhost;
location / {
root Sa propre page;
index Nom de la page.html;
}
location ^~ /api/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://192.168.*.*:8080;
}
location = /50x.html {
root html;
}
}Adoptionnginx Accès aux travaux de première ligne
192.168.*.*
Configuration inverse de l'agent
Une fois le déploiement du projet de première ligne terminé , Nous avons un accès normal à la page de connexion du système ,Cliquez sur le bouton Connexion, Vous pouvez voir les demandes du serveur

/api Ce préfixe passe sans modifier le Code côté Service nginx C'est facile à résoudre.
Cette section de configuration représente , Si la demande actuelle nginx, Et si le chemin demandé est /api/ Au début, Sera locationTraitement.Et à ce moment - làlocationMoyenne, Deux informations principales sont configurées : rewrite(urlRéécriture) Et proxy_pass(Agent inverse). Ensuite, nous allons analyser la configuration de ces deux éléments .
rewrite ^/api/(.*)$ /$1 break; Voici une expression régulière , Représente si le chemin demandé est /api/ Au début, Le chemin de requête suivant est arbitraire ,L'originalurlChemin dépassé par /$1,Ici.$1C'est un joker .* Le contenu de ce bloc.Par exemple,:
/api/employee/login ------> ^/api/(.*)$ -------->
En ce moment (.*) Ça correspond à employee/login ------>
Finalement réécrit comme/$1 : /employee/loginAgent inverse
proxy_pass http://192.168.138.101:8080;Sur le serveurB(192.168.*.*1)Installation moyennejdk、git、maven、MySQL,Utilisergit cloneLes commandes serontgitLe Code de l'entrepôt distant a été cloné
Confirmationjdk: java -version
Confirmationgit:git -version
Confirmationmaven:mvn -v
Pousser le Code que nous avons développé dans un entrepôt distant , Et sur le serveur B Clone moyen
#CréationjavaRépertoire de stockage de code
mkdir -p /usr/local/javaapp
#Basculer le Répertoire
cd /usr/local/javaapp
#Code de clone , Besoin d'utiliser son propre entrepôt distant
git clone https://gitee.com/**/***.git On peut passer par ps -ef|grep java Directives,Voir si le service est lancé.
Exécuter le script
#!/bin/sh
echo =================================
echo Démarrage du script de déploiement automatique
echo =================================
echo Arrêter les travaux en cours
APP_NAME=**********
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo Prêt à partir deGit L'entrepôt tire le dernier Code
cd /usr/local/javaapp/*****
echo Commencez parGit L'entrepôt tire le dernier Code
git pull
echo Retrait du Code terminé
echo Commencez à emballer
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo Lancement du projet
nohup java -jar *********.jar &> *****.log &
echo Lancement du projet terminé
Traitement des problèmes d'affichage d'images
Modifier le Répertoire de stockage de fichiers :path: /usr/local/img/
Placer le dossier d'images de test local img(Dossier complet)Télécharger sur le serveurBDe/usr/localSous la table des matières
Puis il a accédé à l'adresse de la bibliothèque principale et est sorti avec succès
边栏推荐
- 部署metersphere
- Error in na.fail. default(list(Purchase = c(“CH“, “CH“, “CH“, “MM“, “CH“, : missing values in obj
- Single sign on - how to unify the expiration time of session between authentication server and client
- Error in na.fail.default(list(Purchase = c(“CH“, “CH“, “CH“, “MM“, “CH“, : missing values in obj
- Why does MySQL index use b+ tree?
- 达人专栏 | 还不会用 Apache Dolphinscheduler?大佬用时一个月写出的最全入门教程
- Concepts and differences of bit, bit, byte and word
- Briefly describe the features and application scenarios of redis
- Deploy metersphere
- Gerrit 使用操作手册
猜你喜欢

Redis源码与设计剖析 -- 7.快速列表

Single sign on - how to unify the expiration time of session between authentication server and client

又更新了, IDEA 2022.2 正式发布

部署storageclass踩坑记录

An accident caused by MySQL misoperation, and "high availability" is not working well

Data Lake: introduction to delta Lake

Notifier Nordic fire engine power supply maintenance and daily maintenance

Mysql database foundation

H1--HDMI接口测试应用2022-07-15

C语言n番战--结构体(七)
随机推荐
Updated again, idea 2022.2 officially released
讲师征集令 | Apache DolphinScheduler Meetup分享嘉宾,期待你的议题和声音!
8、曲面几何
An analysis of the CPU explosion of an intelligent transportation background service in.Net
C language n battle -- structure (VII)
sort
PXE remote installation and kickstart unattended installation technical documents
MySql语句查询某一级节点的所有子节点
《天幕红尘》笔记与思考(四)相互价值无效
SVG, canvas, drawing line segments and filling polygon, rectangle, curve drawing and filling
又更新了, IDEA 2022.2 正式发布
Selenium JD crawler
Redis source code and design analysis -- 12. Collection objects
Mysql的索引为什么用的是B+树?
Cadence (IX) 17.4 rules and spacing settings
Pytorch (V) -- pytorch advanced training skills
Powerbi Getting Started Guide
十年架构五年生活-02第一份工作
Briefly describe the features and application scenarios of redis
疫情时期加中年危机——游荡在十字街口的三个月