注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com
要求
UNIX的基础知识。
安装了Nginx的FreeBSD x64。
安装工具
您将需要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
在您的终端中。如果显示选项列表,则表明安装成功。运行以下命令以安装名为 Martini
:
go get github.com/go-martini/martini
如果没有看到任何错误,则可以继续进行下一步。
设置马提尼酒
创建一个名为 server.go
并用以下代码行填充它:
package main
import "github.com/go-martini/martini"
func main() {
m := martini.Classic()
m.Get("https://www.vultr.com/", func() string {
return "Hello from Vultr VPS :)!"
})
m.Run()
}
完成后,保存并运行 go run server.go
。如果您没有在终端上看到任何错误,则可以继续执行下一步。
设置Nginx反向代理
配置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 https://127.0.0.1:3000;
proxy_redirect off;
您已经添加了一个,保存并运行 service nginx restart
要么 service nginx onerestart
,然后运行 go run server.go
。在浏览器中,输入 https://0.0.0.0
(相应地更改IP),您将看到一个页面,其中显示:
Hello from Vultr VPS :)!
恭喜,您已成功使用Golang + Martini设置了Nginx反向代理服务器。
注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com