Απαιτήσεις
Εγκατάσταση Εργαλείων
Λήψη και εγκατάσταση του Golang
Ρύθμιση μεταβλητών περιβάλλοντος
Επαληθεύστε την εγκατάσταση
Ρύθμιση Martini
Ρύθμιση του Nginx Reverse Proxy
Απαιτήσεις
- Βασικές γνώσεις UNIX.
- FreeBSD x64 με εγκατεστημένο το Nginx.
Θα χρειαστείτε πολλά προγράμματα που δεν αποστέλλονται με το FreeBSD. Εκτελέστε την ακόλουθη εντολή για να τα εγκαταστήσετε:
pkg install nano wget git mercurial bzr
Λήψη και εγκατάσταση του Golang
Κατεβάστε το golang εκτελώντας το ακόλουθο σύνολο εντολών:
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
Ρύθμιση μεταβλητών περιβάλλοντος
Δημιουργήστε μια μεταβλητή που ονομάζεται GOPATH
(η οποία θα είναι η θέση για τα εγκατεστημένα πακέτα) και προσθέστε τη στη διαδρομή σας:
mkdir ~/.gopkg
setenv GOPATH /root/.gopkg
set path = ($path /usr/local/go/bin /root/.gopkg/bin)
Εάν θέλετε να ορίσετε τη διαδρομή κατά την εκκίνηση, τότε εκτελέστε την ακόλουθη εντολή για να την προσθέσετε στο .cshrc
:
echo "setenv GOPATH /root/.gopkg" >> ~/.cshrc
echo "set path = ($path /usr/local/go/bin /root/.gopkg/bin)" >> ~/.cshrc
Επαληθεύστε την εγκατάσταση
Εκτελέστε go
στο τερματικό σας. Εάν εμφανιστεί μια λίστα επιλογών, τότε η εγκατάσταση ήταν επιτυχής. Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε ένα πλαίσιο web που ονομάζεται Martini
:
go get github.com/go-martini/martini
Εάν δεν βλέπετε σφάλματα, μπορείτε να προχωρήσετε στο επόμενο βήμα.
Ρύθμιση Martini
Δημιουργήστε ένα αρχείο που ονομάζεται server.go
και συμπληρώστε το με τις ακόλουθες γραμμές κώδικα:
package main
import "github.com/go-martini/martini"
func main() {
m := martini.Classic()
m.Get("/", func() string {
return "Hello from Vultr VPS :)!"
})
m.Run()
}
Όταν τελειώσετε, αποθηκεύστε και εκτελέστε go run server.go
. Με την προϋπόθεση ότι δεν βλέπετε σφάλματα στο τερματικό σας, μπορείτε να προχωρήσετε στο επόμενο βήμα.
Ρύθμιση του Nginx Reverse Proxy
Διαμορφώστε το Nginx για να αντιστρέψει το διακομιστή μεσολάβησης στον διακομιστή Martini. Στην /usr/local/etc/nginx/nginx.conf
εμφάνιση για location
και να αντικαταστήσει το περιεχόμενό της μέσα στις αγκύλες με τα ακόλουθα:
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;
Ένα που έχετε προσθέσει, αποθηκεύστε και εκτελέστε service nginx restart
ή service nginx onerestart
, στη συνέχεια εκτελέστε go run server.go
. Στο πρόγραμμα περιήγησής σας, εισάγετε http://0.0.0.0
(αλλάξτε την IP ανάλογα) και θα δείτε μια σελίδα που λέει:
Hello from Vultr VPS :)!
Συγχαρητήρια, ρυθμίσατε με επιτυχία έναν διακομιστή μεσολάβησης αντίστροφου Nginx με το Golang + Martini.