go - 如何将子目录/子域放在另一台服务器(或共享主机)
问题描述
我有一个托管在 Ubuntu 18.04 服务器上的 Go 服务器端程序。我想在共享主机中example.com
使用 Go,然后example.com/blog
使用PHP。blog.example.com
我更喜欢用 Go 本身来做这件事,而不是用另一个 Web 服务器(例如:Nginx),我该怎么做?
解决方案
您需要将另一个服务器/进程提供的端点作为反向代理来处理。标准库为您提供了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)
推荐阅读
- file - 汇编级别的文件操作是什么样的
- jquery - 简单的 ajax 在 ASP.NET MVC Core 2 中不起作用
- openshift-origin - 如何修复“在特定接口上运行 openshift”
- javascript - 如何在 React.js 中对文件或文件夹名称进行版本控制?
- ios - 从另一个视图控制器返回后,如何保持主故事板的大标题?
- python - ModuleNotFoundError:Ubuntu 中没有名为“seaborn”的模块
- c# - 直接添加引用和通过Nuget添加包有什么区别
- java - 如何在不使用表单标记的情况下将文本字段值从 Jsp 页面传递到 Spring Controller
- javascript - 获取对象的所有 Lodash 路径的数组
- php - 通过 PHP 或 Android 处理 SQLite 时是否需要在更新后读取然后验证更新数据?