Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Bindungsfunktionen für virtuelle Hosts und Domänennamen des Gin-Frameworks

Detaillierte Erläuterung der Bindungsfunktionen für virtuelle Hosts und Domänennamen des Gin-Frameworks

PHPz
PHPzOriginal
2023-06-22 09:10:072057Durchsuche

Gin-Framework ist ein leichtes Web-Framework, das die grundlegenden Funktionen bereitstellt, die zum schnellen Erstellen von Webanwendungen erforderlich sind. Das Gin-Framework ist flexibel, effizient und skalierbar und wird daher häufig im Internetbereich verwendet. Unter anderem sind die virtuellen Host- und Domänennamenbindungsfunktionen des Gin-Frameworks wichtige Funktionen, die andere Web-Frameworks nicht haben. In diesem Artikel wird diese Funktion ausführlich vorgestellt.

1. Was ist ein virtueller Gastgeber?

Virtueller Host besteht darin, mehrere unabhängige und voneinander isolierte virtuelle Hosts auf einem physischen Host zu erstellen. Jeder virtuelle Host verfügt über einen eigenen unabhängigen Domänennamen, eine eigene IP-Adresse und ein eigenes Webverzeichnis. Virtuelle Hosts können unterschiedliche DNS-Auflösungen so konfigurieren, dass sie auf unterschiedliche IP-Adressen verweisen. Dadurch können mehrere Websites auf demselben Server ausgeführt werden, wodurch Serverressourcen und Kosten gespart werden.

2. Was ist Domainnamenbindung?

Bei der Domänennamenbindung werden verschiedene Domänennamen an denselben physischen Host gebunden, um die Funktion mehrerer Websites zu realisieren, die auf demselben Server ausgeführt werden. Durch die Auflösung von Domänennamen werden unterschiedliche Domänennamen der IP-Adresse desselben Servers zugeordnet, und die Serverseite bestimmt anhand des Domänennamens, welche Website der Benutzer anfordert.

3. Detaillierte Erläuterung der virtuellen Host- und Domänennamen-Bindungsfunktionen des Gin-Frameworks

Die virtuellen Host- und Domänennamen-Bindungsfunktionen des Gin-Frameworks werden durch Middleware implementiert. Unter anderem basiert die Implementierung des virtuellen Hosts auf der im Gin-Framework integrierten Vhost-Middleware und die Implementierung der Domänennamenbindung auf dem Nginx-Reverse-Proxy.

  1. Das Gin-Framework verfügt über eine integrierte Vhost-Middleware

Die Vhost-Middleware ermöglicht es dem Gin-Framework, die virtuelle Host-Funktion zu implementieren. Die spezifischen Implementierungsschritte lauten wie folgt:

(1) Erstellen Sie einen neuen Konfigurationsordner im Stammverzeichnis der Anwendung, erstellen Sie eine vhosts.json-Datei unter diesem Ordner und speichern Sie die Konfigurationsinformationen des virtuellen Hosts, wie unten gezeigt:

[
    {
        "host": "www.example1.com",
        "dir": "wwwroot1",
        "log": "logs/www1.log"
    },
    {
        "host": "www.example2.com",
        "dir": "wwwroot2",
        "log": "logs/www2.log"
    }
]

Jede Konfigurationsinformation enthält drei Felder: host steht für den Domänennamen des virtuellen Hosts, dir steht für das Webverzeichnis des virtuellen Hosts und log steht für den Protokolldateinamen des virtuellen Hosts.

(2) Fügen Sie in der Hauptfunktion der Anwendung den folgenden Code hinzu:

router := gin.Default()

vhosts, err := vhost.LoadConfig("./config/vhosts.json")
if err != nil {
    panic(err)
}

for _, vh := range vhosts {
    router.Group(vh.Host).Use(func(c *gin.Context) {
        c.Request.URL.Path = strings.TrimPrefix(c.Request.URL.Path, vh.Host)

        handler := http.FileServer(http.Dir(vh.Dir))
        handler.ServeHTTP(c.Writer, c.Request)
    })
}

router.Run()

Der obige Code implementiert das Lesen der Konfigurationsinformationen des virtuellen Hosts aus der Konfigurationsdatei und das Hinzufügen von Middleware zum Router, um Vorgänge auf jedem virtuellen Host auszuführen Host-Deal mit. Unter diesen ist die Gruppenfunktion die Routing-Gruppe des Gin-Frameworks, die zum Verwalten derselben Routengruppe verwendet wird. Der hier übergebene Parameter ist der Domänenname des virtuellen Hosts.

Dann fügen Sie der Routinggruppe Middleware hinzu, um die Anfrage zu verarbeiten. Verwenden Sie in der Middleware die Funktion strings.TrimPrefix, um den Domänennamen des virtuellen Hosts in der URL zu entfernen und den verbleibenden Pfad zur Verarbeitung an http.FileServer zu übergeben.

Der obige Code implementiert die Verarbeitung virtueller Hosts, und auf verschiedene virtuelle Hosts kann über unterschiedliche URLs zugegriffen werden.

  1. Nginx-Reverse-Proxy

In praktischen Anwendungen ist es normalerweise erforderlich, Nginx-Reverse-Proxy zu verwenden, um Domänennamen und IP-Adressen zu binden. Ein Reverse-Proxy kann verschiedene Domänennamen derselben IP-Adresse und Portnummer zuordnen und auf der Serverseite basierend auf dem Domänennamen Routing und Weiterleitung durchführen, wodurch mehrere Websites auf demselben Server ausgeführt werden können.

Die spezifischen Implementierungsschritte lauten wie folgt:

(1) Fügen Sie die Konfigurationsinformationen des virtuellen Hosts in die Nginx-Konfigurationsdatei ein, wie unten gezeigt:

server {
    listen 80;
    server_name www.example1.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

server {
    listen 80;
    server_name www.example2.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

Im obigen Konfigurationscode gibt listen die IP-Adresse und die Portnummer an des virtuellen Hosts. Servername gibt den Domänennamen des virtuellen Hosts an und Standort gibt den Anforderungspfad des virtuellen Hosts an. Unter anderem leitet Proxy_Pass die Anfrage an die angegebene Adresse weiter, hier an den lokalen Port 8080.

(2) Hören Sie im Gin-Framework auf die angegebene IP-Adresse und Portnummer, um von Nginx weitergeleitete Anforderungen zu empfangen. Der spezifische Implementierungscode lautet wie folgt:

router := gin.Default()

router.GET("/", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello, Gin!")
})

router.Run(":8080")

Im obigen Code wird der lokale Port 8080 überwacht und unter dem Root-Pfad eine Testschnittstelle hinzugefügt, um eine Zeichenfolge zurückzugeben.

Mit der obigen Konfiguration können Sie die Funktion mehrerer Websites realisieren, die auf demselben Server ausgeführt werden. Der Nginx-Reverse-Proxy ordnet verschiedene Domänennamen der IP-Adresse desselben Servers zu und leitet sie basierend auf dem Domänennamen auf der Serverseite weiter. Das Gin-Framework ist für die Verarbeitung der empfangenen Anfragen und deren Zuordnung zum entsprechenden virtuellen Host verantwortlich basierend auf dem Domänennamen, wodurch mehrere Websites auf demselben Server ausgeführt werden.

4. Zusammenfassung

Die virtuellen Host- und Domänennamenbindungsfunktionen des Gin-Frameworks können die Ausführung mehrerer Websites auf demselben Server ermöglichen und so Serverressourcen und Kosten sparen. Durch die kombinierte Verwendung von Vhost-Middleware und Nginx-Reverse-Proxy können flexible, effiziente und skalierbare Bindungsfunktionen für virtuelle Hosts und Domänennamen erreicht werden. Die Bindungsfunktion für virtuelle Hosts und Domänennamen des Gin-Frameworks ist eine sehr wichtige Funktion für Webentwickler, die beherrscht und flexibel angewendet werden muss.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Bindungsfunktionen für virtuelle Hosts und Domänennamen des Gin-Frameworks. 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