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.
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 Ausführen des Befehls wird im aktuellen Verzeichnis eine ausführbare Datei mit dem Namen „Ausgabe“ generiert.
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
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 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 .
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.
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 &
Dieser Befehl führt die Golang-Anwendung im Hintergrund aus und gibt das Protokoll in die Datei app.log aus.
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
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
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
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:端口号
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.
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!