Heim > Backend-Entwicklung > Golang > Golang Online-Bereitstellung

Golang Online-Bereitstellung

WBOY
Freigeben: 2023-05-27 11:18:09
Original
673 Leute haben es durchsucht

1. Vorwort

Mit der Weiterentwicklung der Technologie und der Popularisierung des Internets müssen immer mehr Anwendungen und Dienste online bereitgestellt werden. In diesem Prozess ist auch die Auswahl einer geeigneten Programmiersprache ein notwendiger Bestandteil. Golang wird als Open-Source-Programmiersprache für seine Geschwindigkeit, Effizienz und Stabilität hoch gelobt. In diesem Artikel werden die Schritte für die Online-Bereitstellung von Golang und Lösungen für häufige Probleme ausführlich vorgestellt.

2. Kompilierung und Verpackung des Golang-Projekts

Bevor Sie das Golang-Projekt bereitstellen, kompilieren und packen Sie es in eine binäre ausführbare Datei. Im Folgenden werden zwei verschiedene Kompilierungsmethoden vorgestellt.

  1. Verwenden Sie den Befehl „go build“

Verwenden Sie den in die Go-Sprache integrierten Befehl „go build“, um die Kompilierung und Verpackung abzuschließen. Das Befehlsformat ist wie folgt, wobei main.go der Name der Eintragsdatei ist.

go build -o output main.go
Nach dem Login kopieren
Nach dem Login kopieren

Nach dem Ausführen des Befehls wird im aktuellen Verzeichnis eine ausführbare Datei mit dem Namen „Ausgabe“ generiert.

  1. Kompilieren mit Docker-Containern

Docker ist ein weit verbreitetes Containerisierungstool. Durch die Verwendung von Docker-Containern zum Kompilieren und Verpacken von Golang-Projekten können wir Anwendungen bequemer bereitstellen und aktualisieren.

Führen Sie den folgenden Befehl aus, um das Golang-Image abzurufen und in den Container zu gelangen:

docker pull golang:latest
docker run -itd --name go golang:latest
docker exec -it go bash
Nach dem Login kopieren

Geben Sie den Projektordner in den Container ein und verwenden Sie den Befehl „go build“, um das Projekt zu kompilieren und zu verpacken.

go build -o output main.go
Nach dem Login kopieren
Nach dem Login kopieren

Nach der Ausführung können Sie den Befehl scp im Container verwenden, um die generierte Binärdatei lokal zu kopieren.

scp root@ip:/path/to/yourfile .
Nach dem Login kopieren

3. Golang-Projektbereitstellung

Nach Abschluss der Kompilierung und Verpackung des Golang-Projekts kann es in der Produktionsumgebung bereitgestellt werden. Im Folgenden werden zwei gängige Methoden zur Bereitstellung von Golang-Projekten vorgestellt.

  1. Bereitstellung über die Befehlszeile

Um das Golang-Projekt direkt über die Befehlszeile bereitzustellen, müssen Sie den folgenden Befehl ausführen und nach Port bzw. Ausgabe die Portnummer und den Pfad der ausführbaren Datei eingeben.

nohup ./output -port=8080 > app.log 2>&1 &
Nach dem Login kopieren

Dieser Befehl führt die Golang-Anwendung im Hintergrund aus und gibt das Protokoll in die Datei app.log aus.

  1. Verwenden Sie die Systemd-Dienstbereitstellung

Systemd ist ein System- und Dienstmanager, der häufig in Linux-Systemen verwendet wird. Durch die Verwendung von systemd zur Bereitstellung von Golang-Projekten können wir Anwendungen schneller und stabiler bereitstellen.

Sie können eine Dienstdatei mit dem Namen app.service erstellen, die Informationen wie den Ausführungspfad, den Protokollpfad, den Starttyp und die erforderlichen Umgebungsvariablen der Golang-Anwendung enthält. Die Beispieldatei lautet wie folgt:

[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
Nach dem Login kopieren

Bevor Sie den Systemctl-Dienst aktivieren, müssen Sie die Datei im Verzeichnis /etc/systemd/system/ ablegen und den Dienst mit dem folgenden Befehl aktivieren.

systemctl daemon-reload
systemctl enable app.service
systemctl start app.service
Nach dem Login kopieren

Nachdem der obige Befehl ausgeführt wurde, kann die Golang-Anwendung erfolgreich in der Produktionsumgebung bereitgestellt werden.

4. Lösungen für häufige Probleme

  1. Portkonflikt

Wenn Sie beim Ausführen eines Golang-Projekts eine belegte Portnummer auswählen, kann das Programm nicht gestartet werden. Die Lösung besteht darin, im Ausführungsbefehl eine nicht belegte Portnummer anzugeben. Sie können die Portbelegung mit dem folgenden Befehl überprüfen.

lsof -i:端口号
Nach dem Login kopieren
  1. Kann nicht auf die MySQL-Datenbank zugreifen

Wenn die MySQL-Datenbank im Golang-Projekt verwendet wird, aber beim Start des Programms „Kein solcher Host“ und andere zugehörige Informationen angezeigt werden, kann es sein, dass die MySQL-Datenbank nicht konfiguriert ist korrekt. Es muss überprüft werden, ob die MySQL-Datenbank korrekt installiert wurde und eine Verbindung hergestellt werden kann.

  1. Systemspeichernutzung ist zu hoch

Wenn während der Golang-Projektbereitstellung die Speichernutzung zu hoch ist, liegt möglicherweise ein Problem mit der Golang-Anwendung selbst vor. Zu diesem Zeitpunkt müssen Sie die Codelogik überprüfen, das Programm optimieren und die Speichernutzung reduzieren.

In diesem Artikel werden die Kompilierungs-, Verpackungs- und Bereitstellungsmethoden von Golang-Projekten sowie Lösungen für häufige Probleme vorgestellt. Ich hoffe, dass es den Golang-Entwicklern bei der Projektbereitstellung helfen kann.

Das obige ist der detaillierte Inhalt vonGolang Online-Bereitstellung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage