Maison > développement back-end > Golang > le corps du texte

Comment déployer Golang dans nginx

PHPz
Libérer: 2023-04-13 10:18:45
original
1715 Les gens l'ont consulté

Ces dernières années, le langage Golang a été privilégié par les développeurs pour ses performances de concurrence élevées, sa syntaxe concise et sa vitesse de développement rapide. Cependant, dans un environnement de production réel, les applications Golang ont également besoin d'un serveur efficace pour prendre en charge leur fonctionnement. Cet article explique comment utiliser Nginx pour déployer des applications Golang.

1. Introduction à Nginx

Nginx est un logiciel de serveur Web léger et hautes performances. Il s'agit de l'un des logiciels de serveur Web les plus populaires actuellement et convient parfaitement aux services hautes performances tels que l'équilibrage de charge et le proxy inverse. Par rapport à Apache, Nginx a une empreinte mémoire plus petite, des capacités anti-concurrence plus fortes et des performances plus élevées. Par conséquent, Nginx est de plus en plus utilisé dans les clusters de services Web à forte charge.

2. Présentation de la solution de déploiement Golang

De manière générale, le déploiement des applications Golang peut être divisé selon les aspects suivants :

  1. Compiler le programme Golang pour générer des fichiers binaires
  2. Utiliser le serveur proxy Nginx pour transférer les requêtes
  3. Utiliser Supervisor pour la gestion des processus

Ensuite, nous présenterons en détail comment utiliser Nginx pour implémenter le proxy inverse et l'équilibrage de charge, rendant les applications Golang plus efficaces et plus stables pendant le déploiement.

3. Installez Nginx et les composants associés

1. Installez Nginx

Exécutez simplement la commande suivante pour terminer l'installation simple de Nginx :

$ sudo apt-get update
$ sudo apt-get install nginx
Copier après la connexion

Une fois l'installation terminée, utilisez la commande suivante pour démarrer Nginx :

$ sudo systemctl start nginx
Copier après la connexion

. 2. Créer une application Golang

Ici, pour montrer comment déployer une application Golang, nous avons écrit un simple fichier hello.go avec le code suivant :

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, Nginx!")
    })

    http.ListenAndServe(":8080", nil)
}
Copier après la connexion

3 Compilez le fichier binaire

Dans le répertoire racine de l'application Golang. , exécutez la commande suivante pour compiler Générer le fichier binaire :

$ go build -o myapp
Copier après la connexion

Le fichier binaire généré sera placé dans le fichier myapp du répertoire courant.

4. Exécutez l'application Golang

Exécutez la commande suivante dans le terminal de ligne de commande pour exécuter l'application Golang :

$ ./myapp
Copier après la connexion

Après l'exécution, vous pouvez accéder à l'application via localhost:8080 dans le navigateur.

4. Configurer Nginx

1. Proxy inverse

Afin de faciliter le déploiement des applications Golang, nous devons utiliser les requêtes de proxy inverse Nginx. Editez le fichier de configuration Nginx /etc/nginx/nginx.conf et modifiez-le avec le contenu suivant :

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        multi_accept on;
}

http {

    upstream myapp{
        server 127.0.0.1:8080;
    }

    server {
        listen 80;
        server_name localhost;

        location / {
            proxy_pass http://myapp;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}
Copier après la connexion

Une fois la modification terminée, utilisez la commande suivante pour redémarrer Nginx afin que la configuration prenne effet :

$ sudo systemctl restart nginx
Copier après la connexion

Ensuite, accédez localhost dans la barre d'adresse du navigateur Vous pouvez accéder aux applications Golang.

2. Équilibrage de charge

Pour les scénarios à haute concurrence dans les environnements de production, nous devons utiliser des mécanismes d'équilibrage de charge pour améliorer les performances et la stabilité du système. Nginx propose une variété de stratégies d'équilibrage de charge, notamment l'interrogation, le hachage IP, le point de terminaison pondéré, etc. Dans cet article, nous prenons la stratégie d'interrogation comme exemple pour présenter comment configurer l'équilibrage de charge Nginx.

Dans le fichier de configuration de Nginx, l'équilibrage de charge peut être réalisé en modifiant la configuration de la partie amont :

upstream myapp {
    server 127.0.0.1:8080;
    server 127.0.0.1:8090;
    server 127.0.0.1:8100;
}

server {
    listen 80;
    server_name localhost;

    location / {
        proxy_pass http://myapp;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
Copier après la connexion

Ici, nous avons configuré trois instances d'application Golang, et Nginx distribuera les requêtes à chaque instance de manière interrogée. Une fois la modification terminée, redémarrez Nginx.

5. Utiliser Supervisor pour la gestion des processus

Dans un environnement de production, nous devons utiliser des outils de gestion de processus pour gérer les applications. Supervisor est un outil de gestion de processus couramment utilisé.

Tout d'abord, installez le Superviseur :

$ sudo apt-get install supervisor
Copier après la connexion

Ensuite, créez un fichier de configuration du Superviseur, tel que myapp.conf, le contenu du fichier de configuration est le suivant :

[program:myapp]
command=/path/to/myapp
autostart=true
autorestart=true
user=username
Copier après la connexion

Parmi eux, command est la commande à exécuter, démarrage automatique et le redémarrage automatique sont le superviseur pour démarrer et redémarrer automatiquement l'application. Utilisez la commande suivante pour démarrer Supervisor :

$ sudo systemctl start supervisor
Copier après la connexion

Supervisor vérifiera régulièrement si l'application est en cours d'exécution. S'il constate que le programme se ferme anormalement, il redémarrera automatiquement l'application.

6. Résumé

Cet article explique comment utiliser Nginx pour déployer des applications Golang et utiliser Supervisor pour la gestion des processus. Grâce aux mécanismes de proxy inverse et d’équilibrage de charge, nous pouvons facilement déployer des applications Golang stables et performantes. Il est recommandé aux lecteurs de procéder aux ajustements et optimisations appropriés dans les environnements de production réels.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal