Heim  >  Artikel  >  Backend-Entwicklung  >  Bereitstellung von Golang-Code

Bereitstellung von Golang-Code

PHPz
PHPzOriginal
2023-05-27 18:25:40864Durchsuche

Mit der kontinuierlichen Entwicklung und Anwendung der Cloud-Computing-Technologie beginnen immer mehr Unternehmen, Anwendungen in der Cloud bereitzustellen. Als effiziente, leichte und hocheffiziente Sprache wird Golang von immer mehr Unternehmen bevorzugt. Wie sollten wir also vorgehen, wenn wir Golang-Anwendungen in der Cloud bereitstellen? In diesem Artikel werden der Golang-Code-Bereitstellungsprozess und die damit verbundenen technischen Punkte ausführlich vorgestellt.

  1. Vorbereitung

Bevor Sie mit der Golang-Codebereitstellung beginnen, müssen Sie die folgenden Vorbereitungen abschließen:

1.1 Bestimmen Sie den Cloud-Server

Stellen Sie zunächst sicher, dass der Cloud-Server ausgewählt wurde. Zu den wichtigsten Cloud-Dienstanbietern auf dem heutigen Markt gehören Tencent Cloud, Alibaba Cloud, Huawei Cloud usw. Wir können einen Cloud-Server mit stabiler Leistung, günstigem Preis und umfangreichen Funktionen wählen. Generell gilt: Je höher die Konfiguration des Cloud-Servers, desto besser ist die Leistung, allerdings ist auch der entsprechende Preis höher.

1.2 Installieren Sie die Golang-Umgebung

Installieren Sie die Golang-Umgebung auf dem Cloud-Server, um sicherzustellen, dass der Golang-Code kompiliert und normal ausgeführt werden kann.

  1. Golang-Code kompilieren

Nach Abschluss der oben genannten Vorbereitungen können wir mit dem Kompilieren des Golang-Codes beginnen. Golang stellt für jede Plattform einen Compiler bereit, sodass wir den Kompilierungsprozess lokal oder auf einem Cloud-Server abschließen können. Zu den gängigen Tools zum Kompilieren von Golang-Code gehören die Befehle „go build“ und „go install“. Normalerweise verwenden wir den Befehl „go build“, um Golang-Quellcode in eine ausführbare Datei zu kompilieren, wie unten gezeigt:

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

Dieser Befehl generiert eine ausführbare Datei mit dem Namen hello im aktuellen Verzeichnis. Wenn Sie den Befehl „go install“ verwenden, installiert Golang die generierte ausführbare Datei automatisch im Verzeichnis $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 &

Zu diesem Zeitpunkt wird die ausführbare Datei im Verzeichnis $GOPATH/bin installiert.
    1. Laden Sie die ausführbare Datei auf den Cloud-Server hoch

    Nachdem wir die ausführbare Datei kompiliert haben, müssen wir sie auf den Cloud-Server hochladen. Zu den häufig verwendeten Upload-Methoden gehören scp und rsync.

    3.1 Verwenden Sie scp zum Hochladen von Dateien

      Zuerst müssen Sie den folgenden Befehl im lokalen Terminal eingeben, um die Hallo-Datei auf den Remote-Server hochzuladen.
    1. $ yum install -y python-setuptools
      $ easy_install supervisor
    2. Parameterbeschreibung:

    -P: Geben Sie die SSH-Portnummer an

    298c9bd6ad6e8c821dc63aa0473d6209: Die SSH-Portnummer des Cloud-Servers

    hello: Lokale ausführbare Datei

    be1cdaf6779910b92a0a47fc24e82b4f: Die Cloud Benutzername des Servers

    f7e6dec31ab1a0471d06c55afaca8d77: IP des Cloud-Servers

    98953a78f52873edae60a617ec082494: Upload-Zielpfad

Beispiel:

$ supervisord -v

Nachdem der obige Befehl ausgeführt wurde, wird die ausführbare Datei „Hello“ hochgeladen das Cloud-Server-/root-Verzeichnis.

🎜3.2 Verwenden Sie rsync zum Hochladen von Dateien🎜🎜rsync ist ein Remote-Dateisynchronisierungstool, das effizienter als scp ist. Um rsync zum Hochladen ausführbarer Dateien zu verwenden, müssen Sie rsync zunächst auf dem Cloud-Server installieren. Geben Sie dann den folgenden Befehl im lokalen Terminal ein: 🎜
[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
🎜Parameterbeschreibung: 🎜
    🎜-avP: Inhalte synchronisieren 🎜🎜-e: SSH-Kommunikation verwenden, -p gibt die SSH-Portnummer an 🎜🎜298c9bd6ad6e8c821dc63aa0473d6209: ssh des Remote-Servers Portnummer🎜🎜Hallo: lokale ausführbare Datei🎜🎜af17531b09c0c1ece573436bd297d45b: Benutzername des Remote-Servers🎜🎜0b91e91a62e5c21e473e50e4085bb2e5: IP des Remote-Servers🎜🎜8f08b0b4384c46cfaf134ef7016330f0: Upload-Zielpfad🎜 🎜Beispiel: 🎜
    $ systemctl start supervisord.service
    🎜Nachdem der obige Befehl ausgeführt wurde, wird die ausführbare Datei hello in das /root-Verzeichnis des Cloud-Servers hochgeladen. 🎜
    🎜Führen Sie die ausführbare Datei aus🎜🎜🎜Nachdem wir die ausführbare Datei auf den Cloud-Server hochgeladen haben, müssen wir sie auf dem Cloud-Server ausführen. Mit ssh können wir ein Terminalfenster auf dem Cloud-Server öffnen und dann den folgenden Befehl eingeben: 🎜rrreee🎜wobei hello der Name der ausführbaren Datei ist, die wir hochgeladen haben. Wenn alles gut geht, sollten Sie die Ergebnisse der Programmausführung sehen können. 🎜🎜🎜Programm läuft im Hintergrund🎜🎜🎜Im Allgemeinen möchten wir das Programm im Hintergrund ausführen, anstatt das Terminalfenster zu belegen. Wir können den Befehl nohup verwenden, um das Programm im Hintergrund auszuführen. Wenn wir beispielsweise das Hello-Programm im Hintergrund auf dem Cloud-Server ausführen möchten, können wir den folgenden Befehl eingeben: 🎜rrreee🎜Das Programm wird im Hintergrund ausgeführt und speichert die Ausgabeinformationen in der Datei nohup.out. 🎜🎜🎜Verwenden Sie den Befehl „nohup“ des Supervisor-Verwaltungsprogramms, um das Programm im Hintergrund laufen zu lassen. Wenn jedoch ein Fehler oder ein Absturz im Programm auftritt, können wir keine Benachrichtigung schnell erhalten und das Problem nicht beheben. Daher müssen wir Verwaltungstools verwenden, um das Programm zu verwalten. Eines der am häufigsten verwendeten Tools ist Supervisor. 🎜🎜6.1 Install Supervisor🎜🎜Supervisor kann das neueste Installationspaket von der offiziellen Website herunterladen. Der Installationsprozess ist relativ einfach. Wir können die entsprechende Installationsmethode für verschiedene Betriebssysteme auswählen. 🎜🎜Zum Beispiel können Sie im Centos7-System den folgenden Befehl zur Installation verwenden: 🎜rrreee🎜Nach Abschluss der Installation können Sie den folgenden Befehl verwenden, um die Version zu überprüfen: 🎜rrreee🎜6.2 Supervisor konfigurieren🎜🎜Die Konfigurationsdatei von Supervisor ist /etc/supervisord.conf. Wir können dieser Datei den folgenden Inhalt hinzufügen, um unser Programm bei Supervisor zu registrieren. 🎜rrreee🎜Parameterbeschreibung:🎜
  • [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代码部署主要包括编译代码、上传到云服务器、运行程序、使用管理工具进行程序管理等步骤。我们需要根据应用场景选择适合的云服务器和相关技术选项,并对应用程序进行优化,以提高效率和稳定性。

Das obige ist der detaillierte Inhalt vonBereitstellung von Golang-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Verwendung von Golang-PanikNächster Artikel:Verwendung von Golang-Panik