Eigenständige Golang-Bereitstellung

王林
Freigeben: 2023-05-05 21:41:10
Original
549 Leute haben es durchsucht

Mit der allmählichen Popularität der Go-Sprache und der kontinuierlichen Erweiterung ihres Anwendungsbereichs neigen immer mehr Entwickler dazu, Golang als Entwicklungssprache für Projekte zu verwenden. Wenn Sie eine Golang-Anwendung bereitstellen möchten, gibt es zwei Möglichkeiten: Eine besteht darin, Containerisierungstechnologien wie Docker, Kubernetes usw. zu verwenden. Die andere besteht darin, eine eigenständige Bereitstellung zu verwenden. In diesem Artikel werden die relevanten Schritte und Vorsichtsmaßnahmen für die eigenständige Golang-Bereitstellung ausführlich vorgestellt.

  1. Bestätigen Sie die Maschinenumgebung

Bevor wir beginnen, müssen wir bestätigen, ob die Maschinenumgebung den Anforderungen entspricht. Zunächst müssen Sie bestätigen, ob Golang auf dem Computer installiert ist. Auf einem Linux-System können Sie mit dem folgenden Befehl überprüfen, ob Golang installiert wurde:

go version
Nach dem Login kopieren

Wenn Folgendes ausgegeben wird, bedeutet dies, dass Golang erfolgreich installiert wurde:

go version go1.16.5 linux/amd64
Nach dem Login kopieren

Zweitens müssen Sie bestätigen, ob der Computer über Git verfügt installiert, da wir ihn während des Bereitstellungsprozesses benötigen. Ziehen Sie den Code aus Git. Auf einem Linux-System können Sie mit dem folgenden Befehl überprüfen, ob Git installiert wurde:

git version
Nach dem Login kopieren

Wenn der folgende Inhalt ausgegeben wird, wurde Git erfolgreich installiert:

git version 2.17.1
Nach dem Login kopieren

Abschließend müssen Sie bestätigen, ob die Betriebsumgebung der Maschine vorhanden ist angemessen. Für Golang-Anwendungen muss die Ausführungsumgebung die vom Betriebssystem benötigten Abhängigkeiten und Bibliotheksdateien enthalten. Bevor Sie die Maschinenumgebung bestätigen, müssen Sie zunächst die erforderlichen Bibliotheksdateien wie libssl, libcrypto usw. verstehen, um sie an die Verwendung von Bibliotheken von Drittanbietern wie Sphinx und Elasticsearch anzupassen. Mit dem folgenden Befehl können Sie den Installationspfad der Bibliothek ermitteln:

ldconfig -p | grep "library-name"
Nach dem Login kopieren

Wenn die entsprechende Bibliotheksdatei nicht gefunden wird, müssen Sie sie manuell herunterladen und installieren.

  1. Holen Sie sich den Code

Um Golang-Anwendungen bereitzustellen, müssen wir den für die Bereitstellung erforderlichen Code erhalten. Unter anderem kann der Code über den Befehl git clone abgerufen werden, wie unten gezeigt:

git clone https://github.com/username/project.git
Nach dem Login kopieren

Nach der Ausführung dieses Befehls wird im aktuellen Verzeichnis ein Verzeichnis mit dem Namen project generiert, das den von uns benötigten Golang-Anwendungscode enthält.

  1. Kompilieren Sie das Programm

Nachdem Sie den Code erhalten haben, müssen Sie ein ausführbares Binärprogramm kompilieren. Dieser Schritt muss normalerweise entsprechend der spezifischen Umgebung und den Parametern des Programms festgelegt werden, z. B. der vom Programm überwachten Portnummer, dem Pfad zur Protokollausgabe usw. In diesem Artikel nehmen wir zur Veranschaulichung ein einfaches Hallo-Welt-Programm als Beispiel. Führen Sie zunächst den folgenden Befehl im Codeverzeichnis aus, um eine Binärdatei zu generieren

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

Unter diesen ist app der Name des ausgegebenen Binärprogramms und main.go der Einstiegspunkt der Golang-Anwendung. Nach der Ausführung dieses Befehls wird im Codeverzeichnis eine Binärdatei mit dem Namen app generiert. Verwenden Sie dann den folgenden Befehl, um das Binärprogramm zu starten:

./app
Nach dem Login kopieren

An diesem Punkt können wir den Curl-Befehl verwenden, um zu erkennen, ob das Programm erfolgreich gestartet wurde:

curl http://localhost:8080
Nach dem Login kopieren

Wenn „Hello, World!“ zurückgegeben wird, bedeutet dies, dass Programm wurde erfolgreich gestartet.

  1. Prozessmanagement

Um die Verwaltung des Startens, Stoppens und Neustartens der Anwendung zu erleichtern, müssen wir bei der Bereitstellung von Golang-Anwendungen Prozessmanagement-Tools verwenden. Das derzeit am häufigsten verwendete Prozessmanagement-Tool ist systemd. Hier verwenden wir systemd als Beispiel, um zu erklären, wie Prozesse verwaltet werden.

Erstellen Sie zunächst eine neue Datei mit dem Namen app.service in /etc/systemd/system und fügen Sie der Datei den folgenden Inhalt hinzu:

[Unit]
Description=description-of-app
After=network.target

[Service]
Type=simple
Restart=always
StartLimitInterval=0
RestartSec=2
User=username
Group=username
ExecStart=/path/to/application
WorkingDirectory=/path/to/application
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=app
Environment=ENV=prod

[Install]
WantedBy=multi-user.target
Nach dem Login kopieren

Ändern Sie die Beschreibung der App, den Benutzernamen und den Pfad in der obigen Konfigurationsdatei /to/application und ENV stellen jeweils die Beschreibung der Anwendung, den Benutzernamen, unter dem der Dienst ausgeführt wird, den Pfad zur binären ausführbaren Datei der Anwendung und die laufende Umgebung (Test- oder Produktionsumgebung) dar.

Führen Sie nach Abschluss der Konfigurationsdatei den folgenden Befehl aus, um den Systemd-Dienst zu laden und zu starten:

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

Nachdem Sie den obigen Befehl ausgeführt haben, können Sie den folgenden Befehl verwenden, um den Status des Dienstes zu überprüfen:

sudo systemctl status app.service
Nach dem Login kopieren

Wenn der Status lautet „aktiv (läuft)“, dann bedeutet dies, dass der Dienst erfolgreich gestartet wurde.

  1. Sicherheitshärtung

Bei der Bereitstellung eigenständiger Golang-Anwendungen ist die Sicherheitshärtung besonders wichtig. Zu den Maßnahmen zur Sicherheitsverstärkung gehören:

  1. Firewall-Penetrationsrichtlinie aktivieren: Sie können den Befehl iptables verwenden, um Einschränkungen und Schutz für die externen Verbindungen der Maschine zu aktivieren.
  2. Beschränken Sie die Verwendung von Sudo-Befehlen: Verhindern Sie, dass Benutzer ohne Administratorrechte Systemrechte über Sudo-Befehle erhalten.
  3. SSH im öffentlichen Netzwerk einschränken: Sie können den öffentlichen Netzwerkzugriff auf SSH einschränken, indem Sie die folgenden Einträge zu /etc/ssh/sshd_config hinzufügen:

    Port 22
    PermitRootLogin no
    AllowUsers user1 user2
    Nach dem Login kopieren
  4. Verwenden Sie waf, um http-Anfragen zu schützen: Verwenden Sie waf, um http-Anfragen zu vereinheitlichen. Filterung und Erkennung Vermeiden Sie Angriffe, die zu Systemabstürzen oder Datenlecks führen können.
  5. Zusammenfassung

Das Obige sind die relevanten Prozesse und Vorsichtsmaßnahmen für die eigenständige Golang-Bereitstellung. Zusammenfassend umfassen die spezifischen Schritte der eigenständigen Golang-Bereitstellung die Bestätigung der Maschinenumgebung, das Abrufen von Code, das Kompilieren des Programms, die Prozessverwaltung und die Sicherheit Verstärkung und andere Schritte. Für Anfänger lohnt es sich auch, die oben genannten Prozesse und Vorsichtsmaßnahmen zu verstehen und zu lernen, was eine bessere Hilfe für die zukünftige Bereitstellung von Golang-Anwendungen sein kann.

Das obige ist der detaillierte Inhalt vonEigenständige Golang-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