如何将子目录/子域放在另一台服务器(或共享主机)中

时间:2019-03-10 16:48:29

标签: go webserver

我在Ubuntu 18.04服务器上托管了一个Go服务器端程序。我想使用Go处理example.com,然后使用PHP在共享托管中处理example.com/blogblog.example.com。 我更喜欢使用Go本身而不是其他Web服务器(例如:Nginx)来执行此操作, 我该怎么办?

1 个答案:

答案 0 :(得分:3)

您需要将另一个服务器/进程提供的端点作为反向代理进行处理。标准库为您提供了httputil.ReverseProxy(它充当标准http.Handler),以使其变得非常容易。

尝试这样的事情:

target, err := url.Parse("http://blog.example.com/")
if err != nil {
    panic(err)
}
proxy := httputil.NewSingleHostReverseProxy(target)

mux.Handle("/blog", proxy)