Exigences
- Connaissance de base d'UNIX.
- FreeBSD x64 avec Nginx installé.
Vous aurez besoin de plusieurs programmes qui ne sont pas fournis avec FreeBSD. Exécutez la commande suivante pour les installer:
pkg install nano wget git mercurial bzr
Téléchargez et installez Golang
Téléchargez golang en exécutant l'ensemble de commandes suivant:
cd /tmp
wget https://storage.googleapis.com/golang/go1.3.3.freebsd-amd64.tar.gz
tar -C /usr/local -xzf go1.3.3.freebsd-amd64.tar.gz
Configuration des variables d'environnement
Créez une variable appelée GOPATH
(qui sera l'emplacement des packages installés) et ajoutez-la à votre chemin:
mkdir ~/.gopkg
setenv GOPATH /root/.gopkg
set path = ($path /usr/local/go/bin /root/.gopkg/bin)
Si vous souhaitez que le chemin d'accès soit défini au démarrage, exécutez la commande suivante pour l'ajouter à votre .cshrc
:
echo "setenv GOPATH /root/.gopkg" >> ~/.cshrc
echo "set path = ($path /usr/local/go/bin /root/.gopkg/bin)" >> ~/.cshrc
Vérifier l'installation
Exécutez go
dans votre terminal. Si une liste d'options s'affiche, l'installation a réussi. Exécutez la commande suivante pour installer un cadre Web appelé Martini
:
go get github.com/go-martini/martini
Si vous ne voyez aucune erreur, vous pouvez passer à l'étape suivante.
Configurer Martini
Créez un fichier appelé server.go
et remplissez-le avec les lignes de code suivantes:
package main
import "github.com/go-martini/martini"
func main() {
m := martini.Classic()
m.Get("/", func() string {
return "Hello from Vultr VPS :)!"
})
m.Run()
}
Une fois terminé, enregistrez et exécutez go run server.go
. À condition que vous ne voyiez aucune erreur sur votre terminal, vous pouvez passer à l'étape suivante.
Configurer le proxy inverse Nginx
Configurez Nginx pour inverser le proxy vers le serveur Martini. En /usr/local/etc/nginx/nginx.conf
regard de location
et remplacer son contenu dans les accolades avec les éléments suivants:
expires 8d;
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;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_read_timeout 5m;
proxy_connect_timeout 5m;
proxy_cache_key sfs$request_uri$scheme;
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
Celui que vous avez ajouté, enregistrez et exécutez service nginx restart
ou service nginx onerestart
, puis exécutez go run server.go
. Dans votre navigateur, entrez http://0.0.0.0
(modifiez l'IP en conséquence) et vous verrez une page qui dit:
Hello from Vultr VPS :)!
Félicitations, vous avez réussi à configurer un serveur proxy inverse Nginx avec Golang + Martini.