Maison > Article > développement back-end > déploiement en ligne de Golang
1. Avant-propos
Avec l'avancée de la technologie et la popularisation d'Internet, de plus en plus d'applications et de services doivent être déployés en ligne. Dans ce processus, le choix d’un langage de programmation approprié est également un élément nécessaire. En tant que langage de programmation open source, Golang est très apprécié pour sa rapidité, son efficacité et sa stabilité. Cet article présentera en détail les étapes du déploiement en ligne de Golang et les solutions aux problèmes courants.
2. Compilation et packaging du projet Golang
Avant de déployer le projet Golang, compilez-le et emballez-le dans un fichier exécutable binaire. Deux méthodes de compilation différentes sont présentées ci-dessous.
Utilisez la commande go build intégrée au langage Go pour terminer la compilation et l'empaquetage. Le format de commande est le suivant, où main.go est le nom du fichier d'entrée.
go build -o output main.go
Après avoir exécuté la commande, un fichier exécutable nommé output sera généré dans le répertoire courant.
Docker est un outil de conteneurisation largement utilisé. L'utilisation de conteneurs Docker pour compiler et empaqueter des projets Golang nous permet de déployer et de mettre à niveau des applications plus facilement.
Exécutez la commande suivante pour extraire l'image Golang et entrez dans le conteneur :
docker pull golang:latest docker run -itd --name go golang:latest docker exec -it go bash
Entrez le dossier du projet dans le conteneur et utilisez la commande go build pour compiler et empaqueter le projet .
go build -o output main.go
Après l'exécution, vous pouvez utiliser la commande scp dans le conteneur pour copier le fichier binaire généré vers le local.
scp root@ip:/path/to/yourfile .
3. Déploiement du projet Golang
Après avoir terminé la compilation et le packaging du projet Golang, il peut être déployé dans l'environnement de production. Deux méthodes courantes de déploiement de projets Golang sont présentées ci-dessous.
Utilisez la ligne de commande pour déployer directement le projet Golang Vous devez exécuter la commande suivante et renseigner le port. numéro et numéro de port après le port et la sortie respectivement.
nohup ./output -port=8080 > app.log 2>&1 &
Cette commande exécutera l'application Golang en arrière-plan et affichera le journal dans le fichier app.log.
Systemd est un gestionnaire de système et de services largement utilisé dans les systèmes Linux. Utiliser systemd pour déployer des projets Golang nous permet de déployer des applications plus rapidement et de manière plus stable.
Vous pouvez créer un fichier de service nommé app.service, qui contient des informations telles que le chemin d'exécution, le chemin du journal, le type de démarrage et les variables d'environnement requises de l'application Golang. L'exemple de fichier est le suivant :
[Unit] Description=Golang Application Service After=network.target Requires=network.target [Service] ExecStart=/path/to/output -port=8080 WorkingDirectory=/path/to/ Restart=always RestartSec=3 StartLimitBurst=10 StartLimitInterval=60s StandardOutput=file:/var/log/app.log StandardError=file:/var/log/app.log [Install] WantedBy=multi-user.target
Avant d'activer le service systemctl, vous devez placer le fichier dans le répertoire /etc/systemd/system/ et activer le service via la commande suivante.
systemctl daemon-reload systemctl enable app.service systemctl start app.service
Après avoir exécuté la commande ci-dessus, l'application Golang peut être déployée avec succès dans l'environnement de production.
4. Solutions aux problèmes courants
Lors de l'exécution du projet Golang, si vous avez sélectionné Le numéro de port occupé empêchera le démarrage du programme. La solution consiste à spécifier un numéro de port inoccupé dans la commande d'exécution. Vous pouvez vérifier l'occupation du port avec la commande suivante.
lsof -i:端口号
Si la base de données MySQL est utilisée dans le projet Golang, mais que "aucun hôte de ce type" n'est demandé lorsque le programme démarre, etc. informations associées, il est possible que la base de données MySQL ne soit pas configurée correctement. Il est nécessaire de vérifier si la base de données MySQL a été correctement installée et si elle peut être connectée.
Lors du déploiement du projet Golang, si l'utilisation de la mémoire est trop élevée, il peut s'agir du Golang l'application elle-même Il y a un problème. À ce stade, vous devez vérifier la logique du code, optimiser le programme et réduire l'utilisation de la mémoire.
Cet article présente les méthodes de compilation, de packaging et de déploiement des projets Golang, ainsi que des solutions aux problèmes courants. J'espère que cela pourra apporter de l'aide aux développeurs Golang dans le processus de déploiement du projet.
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!