Requisiti
- Conoscenza di base di UNIX.
- FreeBSD x64 con Nginx installato.
Avrai bisogno di diversi programmi che non sono forniti con FreeBSD. Eseguire il comando seguente per installarli:
pkg install nano wget git mercurial bzr
Scarica e installa Golang
Scarica Golang eseguendo il seguente set di comandi:
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
Imposta variabili di ambiente
Crea una variabile chiamata GOPATH
(che sarà la posizione dei pacchetti installati) e aggiungila al tuo percorso:
mkdir ~/.gopkg
setenv GOPATH /root/.gopkg
set path = ($path /usr/local/go/bin /root/.gopkg/bin)
Se si desidera impostare il percorso all'avvio, eseguire il comando seguente per aggiungerlo al proprio .cshrc
:
echo "setenv GOPATH /root/.gopkg" >> ~/.cshrc
echo "set path = ($path /usr/local/go/bin /root/.gopkg/bin)" >> ~/.cshrc
Verifica installazione
Corri go
nel tuo terminale. Se viene visualizzato un elenco di opzioni, l'installazione è stata eseguita correttamente. Eseguire il comando seguente per installare un framework Web chiamato Martini
:
go get github.com/go-martini/martini
Se non visualizzi alcun errore, puoi procedere al passaggio successivo.
Setup Martini
Crea un file chiamato server.go
e popolalo con le seguenti righe di codice:
package main
import "github.com/go-martini/martini"
func main() {
m := martini.Classic()
m.Get("/", func() string {
return "Hello from Vultr VPS :)!"
})
m.Run()
}
Al termine, salva ed esegui go run server.go
. A condizione che non vengano visualizzati errori sul terminale, è possibile procedere al passaggio successivo.
Installazione del proxy inverso Nginx
Configurare Nginx per invertire il proxy sul server Martini. Nel /usr/local/etc/nginx/nginx.conf
cercare location
e sostituire il suo contenuto all'interno delle parentesi graffe con il seguente:
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;
Uno che hai aggiunto, salva ed esegui service nginx restart
o service nginx onerestart
, quindi esegui go run server.go
. Nel browser, inserisci http://0.0.0.0
(modifica l'IP di conseguenza) e vedrai una pagina che dice:
Hello from Vultr VPS :)!
Congratulazioni, hai configurato correttamente un server proxy inverso Nginx con Golang + Martini.