Maison  >  Article  >  développement back-end  >  déploiement de code Golang

déploiement de code Golang

PHPz
PHPzoriginal
2023-05-27 18:25:40928parcourir

Avec le développement et l'application continus de la technologie du cloud computing, de plus en plus d'entreprises commencent à déployer des applications sur le cloud. En tant que langage efficace, léger et très efficace, Golang est privilégié par de plus en plus d'entreprises. Alors, comment devrions-nous procéder lors du déploiement d’applications Golang sur le cloud ? Cet article présentera en détail le processus de déploiement du code Golang et les points techniques associés.

  1. Préparation

Avant de commencer le déploiement du code Golang, les préparations suivantes doivent être effectuées :

1.1 Déterminez le serveur cloud

Assurez-vous d'abord que le serveur cloud a été sélectionné. Les principaux fournisseurs de services cloud sur le marché aujourd'hui incluent Tencent Cloud, Alibaba Cloud, Huawei Cloud, etc. Nous pouvons choisir un serveur cloud avec des performances stables, un prix avantageux et des fonctions riches. De manière générale, plus la configuration du serveur cloud est élevée, meilleures seront les performances, mais le prix correspondant sera plus élevé.

1.2 Installez l'environnement golang

Installez l'environnement golang sur le serveur cloud pour vous assurer que le code golang peut être compilé et exécuté normalement.

  1. Compile le code golang

Après avoir terminé les préparatifs ci-dessus, nous pouvons commencer à compiler le code golang. golang fournit un compilateur pour chaque plateforme, afin que nous puissions terminer le processus de compilation localement ou sur un serveur cloud. Les outils courants pour compiler du code Golang incluent les commandes « go build » et « go install ». Nous utilisons généralement la commande "go build" pour compiler le code source de Golang dans un fichier exécutable, comme indiqué ci-dessous :

$ cd $GOPATH/src/github.com/user/hello
$ go build

Cette commande générera un fichier nommé hello dans le fichier actuel fichier exécutable du répertoire. Si vous utilisez la commande "go install", golang installera automatiquement le fichier exécutable généré dans le répertoire $GOPATH/bin. hello的可执行文件。如果使用"go install"命令,则golang会自动将生成的可执行文件安装到$GOPATH/bin目录下。

$ cd $GOPATH/src/github.com/user/hello
$ go install

此时,可执行文件将被安装到$GOPATH/bin目录下。

  1. 上传可执行文件到云服务器

在编译出可执行文件之后,我们需要将其上传到云服务器上。常用的上传方式有scp和rsync。

3.1 使用scp上传文件

首先,需要在本地终端输入以下指令,将hello文件上传到远程服务器。

$ scp -P <port> hello <user>@<host>:<path>

参数说明:

  • -P:指定ssh端口号
  • 298c9bd6ad6e8c821dc63aa0473d6209:云服务器的ssh端口号
  • hello:本地的可执行文件
  • be1cdaf6779910b92a0a47fc24e82b4f:云服务器的用户名
  • f7e6dec31ab1a0471d06c55afaca8d77:云服务器的IP
  • 98953a78f52873edae60a617ec082494:上传的目标路径

示例:

$ scp -P 22 hello root@192.168.10.10:/root

以上命令执行后,可执行文件hello将被上传到云服务器的/root目录下。

3.2 使用rsync上传文件

rsync是一种远程文件同步工具,比scp更加高效。使用rsync上传可执行文件,需要先在云服务器上安装rsync。然后在本地终端输入以下指令:

$ rsync -avP -e 'ssh -p <port>' hello <user>@<host>:<path>

参数说明:

  • -avP:同步内容
  • -e:使用ssh通信,-p指定ssh端口号
  • 298c9bd6ad6e8c821dc63aa0473d6209:远程服务器的ssh端口号
  • hello:本地的可执行文件
  • be1cdaf6779910b92a0a47fc24e82b4f:远程服务器的用户名
  • f7e6dec31ab1a0471d06c55afaca8d77:远程服务器的IP
  • 98953a78f52873edae60a617ec082494:上传的目标路径

示例:

$ rsync -avP -e 'ssh -p 22' hello root@192.168.10.10:/root

以上命令执行后,可执行文件hello将被上传到云服务器的/root目录下。

  1. 运行可执行文件

上传可执行文件到云服务器之后,我们需要在云服务器上运行它。我们可以使用ssh在云服务器上打开一个终端窗口,然后输入以下命令:

$ ./hello

其中,hello

$ nohup ./hello &

À ce stade, le fichier exécutable sera installé dans le répertoire $GOPATH/bin.
    1. Télécharger le fichier exécutable sur le serveur cloud

    Après avoir compilé le fichier exécutable, nous devons le télécharger sur le cloud sur le serveur. Les méthodes de téléchargement couramment utilisées incluent scp et rsync.

    3.1 Utilisez scp pour télécharger des fichiers

      Tout d'abord, vous devez entrer la commande suivante dans le terminal local pour télécharger le fichier hello sur le serveur distant.
    1. $ yum install -y python-setuptools
      $ easy_install supervisor
    2. Description du paramètre :

    -P : Spécifiez le numéro de port ssh

    298c9bd6ad6e8c821dc63aa0473d6209 : Le numéro de port ssh du serveur cloud# 🎜🎜#

    hello : fichier exécutable local

    be1cdaf6779910b92a0a47fc24e82b4f : nom d'utilisateur du serveur cloud

    f7e6dec31ab1a0471d06c55afaca8d77 : IP du serveur cloud# 🎜 🎜#

    98953a78f52873edae60a617ec082494 : Télécharger le chemin cible

Exemple :

$ supervisord -v

Une fois la commande ci-dessus exécutée, le fichier exécutable hello sera Téléchargez dans le répertoire /root du serveur cloud.

3.2 Utilisez rsync pour télécharger des fichiers

#🎜🎜#rsync est un outil de synchronisation de fichiers à distance qui est plus efficace que scp. Pour utiliser rsync pour télécharger des fichiers exécutables, vous devez d'abord installer rsync sur le serveur cloud. Saisissez ensuite la commande suivante dans le terminal local : #🎜🎜#
[program:hello]
command=/path/to/hello
directory=/path/to/hello/dir
autostart=true
autorestart=true
stdout_logfile=/var/log/hello.stdout.log
stderr_logfile=/var/log/hello.stderr.log
#🎜🎜#Description du paramètre : #🎜🎜#
    #🎜🎜#-avP : Synchroniser le contenu #🎜🎜##🎜🎜#-e : Utiliser communication ssh , -p précise le numéro de port ssh #🎜🎜##🎜🎜#298c9bd6ad6e8c821dc63aa0473d6209 : le numéro de port ssh du serveur distant #🎜🎜##🎜🎜#hello : fichier exécutable local #🎜🎜##🎜 🎜#be1cdaf6779910b92a0a47fc24e82b4f : Nom d'utilisateur du serveur distant #🎜🎜##🎜🎜#f7e6dec31ab1a0471d06c55afaca8d77 : IP du serveur distant #🎜🎜##🎜🎜#98953a78f52873edae60a617ec082494 : Chemin cible de téléchargement #🎜🎜 #
#🎜🎜#Exemple : #🎜🎜#
$ systemctl start supervisord.service
#🎜🎜#Une fois la commande ci-dessus exécutée, le fichier exécutable hello sera téléchargé dans le répertoire /root du serveur cloud. #🎜🎜#
    #🎜🎜#Exécuter le fichier exécutable#🎜🎜##🎜🎜##🎜🎜#Après avoir téléchargé le fichier exécutable sur le serveur cloud, nous devons l'exécuter sur le cloud serveur. Nous pouvons utiliser ssh pour ouvrir une fenêtre de terminal sur le serveur cloud, puis saisir la commande suivante : #🎜🎜#rrreee#🎜🎜#où, hello est le nom du fichier exécutable que nous avons téléchargé. Si tout se passe bien, vous devriez pouvoir voir les résultats de l'exécution du programme. #🎜🎜##🎜🎜##🎜🎜#Programme exécuté en arrière-plan#🎜🎜##🎜🎜##🎜🎜#Généralement, nous souhaitons exécuter le programme en arrière-plan au lieu d'occuper la fenêtre du terminal. Nous pouvons utiliser la commande nohup pour exécuter le programme en arrière-plan. Par exemple, si nous voulons exécuter le programme hello en arrière-plan sur le serveur cloud, nous pouvons saisir la commande suivante : #🎜🎜#rrreee#🎜🎜#Le programme s'exécutera en arrière-plan et enregistrera les informations de sortie dans le nohup Fichier .out. #🎜🎜##🎜🎜##🎜🎜#Utiliser Supervisor pour gérer le programme#🎜🎜##🎜🎜##🎜🎜#La commande nohup met le programme en cours d'exécution en arrière-plan, mais si le programme se trompe ou plante, nous ne pouvons pas recevez une notification rapidement et traitez-la. Par conséquent, nous devons utiliser des outils de gestion pour gérer le programme. L'un des outils les plus couramment utilisés est Supervisor. #🎜🎜##🎜🎜#6.1 Superviseur d'installation#🎜🎜##🎜🎜#Le superviseur peut télécharger le dernier package d'installation à partir du site officiel. Le processus d'installation est relativement simple. Nous pouvons choisir la méthode d'installation correspondante en fonction des différents systèmes d'exploitation. #🎜🎜##🎜🎜#Par exemple, dans le système Centos7, vous pouvez utiliser la commande suivante pour installer : #🎜🎜#rrreee#🎜🎜#Une fois l'installation terminée, vous pouvez utiliser la commande suivante pour vérifier la version : #🎜🎜#rrreee#🎜🎜 #6.2 Configurer le superviseur#🎜🎜##🎜🎜#Le fichier de configuration du superviseur est /etc/supervisord.conf. Nous pouvons ajouter le contenu suivant à ce fichier pour enregistrer notre programme auprès du superviseur. #🎜🎜#rrreee#🎜🎜#Description du paramètre : #🎜🎜#
  • [program:hello]:程序名
  • command:启动命令
  • directory:程序所在目录
  • autostart、autorestart:表示程序是否自动启动和重启
  • stdout_logfile:标准输出日志的路径
  • stderr_logfile:错误日志的路径

以上配置中,我们将程序名设置为"hello",command设置为hello可执行文件路径,directory设置为hello可执行文件所在目录,让程序自动启动和重启,同时将标准输出日志和错误日志分别保存到/var/log/hello.stdout.log和/var/log/hello.stderr.log。

6.3 启动Supervisor服务

配置完成后,我们需要启动Supervisor服务。在Centos7系统中,可以使用以下命令启动:

$ systemctl start supervisord.service

此时,我们的程序已经可以通过Supervisor进行管理。

  1. 优化应用程序

最后,我们可以使用以下方法来进一步优化我们的应用程序。

7.1 使用HTTPS协议

在应用程序中使用HTTPS协议可以加强应用程序的安全性。我们可以在应用程序中添加TLS/SSL证书,使其支持HTTPS协议。

7.2 使用Nginx反向代理

使用Nginx反向代理可以提高应用程序的性能和稳定性。Nginx可以作为负载均衡器,将流量均衡到多个应用程序实例中,提高并发量和可用性。

7.3 使用Docker容器

使用Docker容器可以更加方便地管理和部署应用程序。我们可以在Docker容器中运行应用程序,在容器内部实现应用程序的依赖及配置管理,使得应用程序在不同环境中的部署更加简单和便捷。

综上所述,golang代码部署主要包括编译代码、上传到云服务器、运行程序、使用管理工具进行程序管理等步骤。我们需要根据应用场景选择适合的云服务器和相关技术选项,并对应用程序进行优化,以提高效率和稳定性。

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:
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
Article précédent:utilisation de Golang PanicArticle suivant:utilisation de Golang Panic