Maison Opération et maintenance exploitation et maintenance Linux Comment déployer les services Golang sur Linux

Comment déployer les services Golang sur Linux

May 15, 2023 pm 03:22 PM
linux golang

1. Installez Golang et les outils nécessaires

Avant de déployer les services Golang, vous devez d'abord installer Golang et les outils nécessaires. Il peut être installé via la commande suivante :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install golang
sudo apt-get install git
Copier après la connexion

Parmi elles, la dernière ligne installe l'outil Git. Parce que les projets Golang sont généralement gérés via Git. Une fois l'installation terminée, vous pouvez vérifier si l'installation a réussi en exécutant la commande suivante :

go version
git version
Copier après la connexion

Si les deux commandes ci-dessus génèrent le numéro de version, cela signifie que l'installation est réussie.

2. Écrire le service Golang

Après avoir installé Golang et les outils nécessaires, vous pouvez commencer à écrire des services Golang. En prenant un simple service HTTP comme exemple, voici un exemple de code :

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", helloHandler)
    fmt.Println("Server started on port 8080")
    http.ListenAndServe(":8080", nil)
}

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
}
Copier après la connexion

Le code du service a une fonction simple, écoute le port local 8080 et renvoie la chaîne "Hello, World!" Utilisez la méthode http.HandleFunc pour spécifier une route et une fonction de gestionnaire pour cette route. http.HandleFunc 方法来指定路由和对该路由的处理函数。

三、构建并测试 Golang 服务

在编写好 Golang 服务代码后,需要进行构建并测试。可以使用以下命令来构建服务:go build。该命令会在当前目录下生成可执行文件。在测试前,需要先修改一下当前用户的防火墙规则,以允许该服务监听 8080 端口。可以使用以下命令:

sudo ufw allow 8080/tcp
Copier après la connexion

修改完成后,即可启动服务进行测试。可以使用以下命令启动服务:

./<可执行文件名> &
Copier après la connexion

其中的 & 符号表示将服务放在后台运行。启动成功后即可使用浏览器或者 curl 命令来访问该服务。

四、使用 PM2 进行 Golang 服务部署

手动启动 Golang 服务显然不太友好,特别是当需要对该服务进行重启或监控时,更不方便。所以,可以使用 PM2 工具来进行服务的管理和部署。PM2 是一个 Node.js 生态圈中的进程管理工具,不过它也支持管理其他语言编写的进程,包括 Golang。以下是使用 PM2 进行 Golang 服务部署的示例:

  1. 安装 PM2

sudo npm install -g pm2
Copier après la connexion
  1. 进入服务程序所在目录,并使用以下命令启动服务:

pm2 start <可执行文件名> --name=<服务名称>
Copier après la connexion

其中,--name

3. Créez et testez le service Golang
  1. Après avoir écrit le code du service Golang, vous devez le construire et le tester. Le service peut être construit à l'aide de la commande suivante : go build. Cette commande générera un fichier exécutable dans le répertoire courant. Avant de tester, vous devez modifier les règles de pare-feu de l'utilisateur actuel pour permettre au service d'écouter sur le port 8080. Vous pouvez utiliser la commande suivante :

    pm2 list
    Copier après la connexion

    Une fois la modification terminée, vous pouvez démarrer le service pour le tester. Vous pouvez utiliser la commande suivante pour démarrer le service :
  2. pm2 restart <服务名称>
    pm2 stop <服务名称>
    pm2 delete <服务名称>
    Copier après la connexion
    Les symboles & signifient exécuter le service en arrière-plan. Après un démarrage réussi, vous pouvez utiliser un navigateur ou la commande curl pour accéder au service.
    1. 4. Utilisez PM2 pour le déploiement du service Golang

      Démarrer manuellement le service Golang n'est évidemment pas très convivial, surtout lorsque le service doit être redémarré ou surveillé, c'est encore plus gênant. Par conséquent, les outils PM2 peuvent être utilisés pour la gestion et le déploiement des services. PM2 est un outil de gestion de processus dans l'écosystème Node.js, mais il prend également en charge la gestion de processus écrits dans d'autres langages, dont Golang. Voici un exemple d'utilisation de PM2 pour le déploiement du service Golang :
      1. 🎜Installez PM2🎜🎜🎜rrreee
          🎜 🎜Entrez le répertoire où se trouve le programme de service, et utilisez la commande suivante pour démarrer le service : 🎜🎜🎜rrreee🎜Parmi eux, le paramètre --name permet de spécifier le nom de le service. 🎜🎜🎜🎜Vous pouvez utiliser la commande suivante pour afficher l'état du service : 🎜🎜🎜rrreee🎜🎜🎜Pour les processus gérés par PM2, vous pouvez utiliser la commande suivante pour faire fonctionner le service : 🎜🎜🎜rrreee

      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!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Comment déverrouiller tout dans Myrise
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

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

    Transformant du développement frontal au développement back-end, est-il plus prometteur d'apprendre Java ou Golang? Transformant du développement frontal au développement back-end, est-il plus prometteur d'apprendre Java ou Golang? Apr 02, 2025 am 09:12 AM

    Chemin d'apprentissage du backend: le parcours d'exploration du front-end à l'arrière-end en tant que débutant back-end qui se transforme du développement frontal, vous avez déjà la base de Nodejs, ...

    Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

    Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

    Quatre façons d'implémenter le multithreading dans le langage C Quatre façons d'implémenter le multithreading dans le langage C Apr 03, 2025 pm 03:00 PM

    Le multithreading dans la langue peut considérablement améliorer l'efficacité du programme. Il existe quatre façons principales d'implémenter le multithreading dans le langage C: créer des processus indépendants: créer plusieurs processus en cours d'exécution indépendante, chaque processus a son propre espace mémoire. Pseudo-Multithreading: Créez plusieurs flux d'exécution dans un processus qui partagent le même espace mémoire et exécutent alternativement. Bibliothèque multi-thread: Utilisez des bibliothèques multi-threades telles que PTHEADS pour créer et gérer des threads, en fournissant des fonctions de fonctionnement de thread riches. Coroutine: une implémentation multi-thread légère qui divise les tâches en petites sous-tâches et les exécute tour à tour.

    L'interprète Python peut-il être supprimé dans le système Linux? L'interprète Python peut-il être supprimé dans le système Linux? Apr 02, 2025 am 07:00 AM

    En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

    Comment s'assurer que la concurrence est sûre et efficace lors de la rédaction de journaux multi-processus? Comment s'assurer que la concurrence est sûre et efficace lors de la rédaction de journaux multi-processus? Apr 02, 2025 pm 03:51 PM

    Gérez efficacement les problèmes de sécurité de la concurrence dans la rédaction de journaux multiproces. Plusieurs processus écrivent le même fichier journal en même temps. Comment s'assurer que la concurrence est sûre et efficace? C'est un ...

    Comment ouvrir web.xml Comment ouvrir web.xml Apr 03, 2025 am 06:51 AM

    Pour ouvrir un fichier web.xml, vous pouvez utiliser les méthodes suivantes: Utilisez un éditeur de texte (tel que le bloc-notes ou TextEdit) pour modifier les commandes à l'aide d'un environnement de développement intégré (tel qu'Eclipse ou NetBeans) (Windows: Notepad web.xml; Mac / Linux: Open -A TextEdit web.xml)

    Comment résoudre le problème des contraintes de type de fonction générique de Golang en cours de suppression automatique dans VSCODE? Comment résoudre le problème des contraintes de type de fonction générique de Golang en cours de suppression automatique dans VSCODE? Apr 02, 2025 pm 02:15 PM

    La suppression automatique des contraintes de type de fonction générique Golang dans les utilisateurs de VScode peut rencontrer un problème étrange lors de l'écriture de code Golang à l'aide de VScode. quand...

    Comment utiliser Golang pour mettre en œuvre des fonctions d'exécution, d'arrêt et de rechargement de type caddy? Comment utiliser Golang pour mettre en œuvre des fonctions d'exécution, d'arrêt et de rechargement de type caddy? Apr 02, 2025 pm 02:12 PM

    Comment implémenter des fonctions d'exécution, d'arrêt et de rechargement de l'arrière-plan à Golang? Pendant le processus de programmation, nous devons souvent implémenter un fonctionnement de fond et nous arrêter ...

    See all articles