Yêu cầu
- Kiến thức cơ bản về UNIX.
- FreeBSD x64 với Nginx được cài đặt.
Bạn sẽ cần một số chương trình không được cung cấp với FreeBSD. Chạy lệnh sau để cài đặt chúng:
pkg install nano wget git mercurial bzr
Tải xuống và cài đặt Golang
Tải xuống golang bằng cách chạy bộ lệnh sau:
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
Cài đặt biến môi trường
Tạo một biến được gọi GOPATH
(sẽ là vị trí cho các gói đã cài đặt) và thêm nó vào đường dẫn của bạn:
mkdir ~/.gopkg
setenv GOPATH /root/.gopkg
set path = ($path /usr/local/go/bin /root/.gopkg/bin)
Nếu bạn muốn thiết lập đường dẫn khi khởi động, hãy chạy lệnh sau để thêm nó vào .cshrc
:
echo "setenv GOPATH /root/.gopkg" >> ~/.cshrc
echo "set path = ($path /usr/local/go/bin /root/.gopkg/bin)" >> ~/.cshrc
Xác minh cài đặt
Chạy go
trong thiết bị đầu cuối của bạn. Nếu bạn được trình bày với một danh sách các tùy chọn, thì việc cài đặt đã thành công. Chạy lệnh sau để cài đặt một khung web gọi là Martini
:
go get github.com/go-martini/martini
Nếu bạn không thấy bất kỳ lỗi nào, thì bạn có thể tiến hành bước tiếp theo.
Cài đặt Martini
Tạo một tệp được gọi server.go
và điền vào nó với các dòng mã sau:
package main
import "github.com/go-martini/martini"
func main() {
m := martini.Classic()
m.Get("/", func() string {
return "Hello from Vultr VPS :)!"
})
m.Run()
}
Khi hoàn thành, lưu và chạy go run server.go
. Với điều kiện bạn không thấy bất kỳ lỗi nào trên thiết bị đầu cuối của mình, thì bạn có thể tiến hành bước tiếp theo.
Cài đặt Nginx Reverse Proxy
Định cấu hình Nginx để đảo ngược proxy đến máy chủ Martini. Tìm /usr/local/etc/nginx/nginx.conf
kiếm location
và thay thế nội dung của nó trong dấu ngoặc nhọn bằng cách sau:
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;
Một bạn đã thêm rằng, lưu và chạy service nginx restart
hoặc service nginx onerestart
, sau đó chạy go run server.go
. Trong trình duyệt của bạn, nhập http://0.0.0.0
(thay đổi IP cho phù hợp) và bạn sẽ thấy một trang có nội dung:
Hello from Vultr VPS :)!
Xin chúc mừng, bạn đã thiết lập thành công máy chủ proxy ngược Nginx với Golang + Martini.