将urlpathredirect到端口

我有很多Web应用程序运行在服务器上。 其中一些我做了,其中一些是开源(如开放云)。 我所有的networking应用都运行在特定的端口上。 我的端口80仍然是免费的。

我想在80端口上为我的所有应用程序制作一个漂亮的欢迎页面,以允许我的同事在本地networking上查看它们。

我的问题是设置url地图。 我希望pathhttp://machine-name:80/open-cloud/http://machine-name:8080/ (如果可能,包括静态文件)完全相同。

另外一个可能的解决scheme是使用子http://open-cloud.machine-name:80/例如http://open-cloud.machine-name:80/ 。 但是我不知道如何在本地networking中这样做。

我正在寻找Python,node.js或Go(这将是太棒了!)的解决scheme。 重要的是要注意,我的web应用程序没有运行在ssl上,它可能会处理非常低的stream量。 毕竟它只是一个本地networking!

任何帮助和参考将是受欢迎的。

干杯!

你只需要一些代理,例如http://nginx.org

然后将您想要的域传递给您的应用程序端口:

 server { listen 80; server_name app1.local; location / { proxy_pass http://127.0.0.1:8080/; proxy_set_header HOST $http_host; proxy_set_header X-Real-IP $remote_addr; } } 

如果你坚持在Go中编写自己的解决scheme,你可以为每个URL设置一个http.Redirect ,像这样:

 import "net/http" var urlMap = map[string]string { "open-cloud": "http://machine-name:8080/", "some-other": "http://machine-name:9090/", } func redirectHandler(target string) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, target, 301) } } func main() { for key, target := range urlMap { http.HandleFunc("/" + key, redirectHandler(target)) } http.ListenAndServe(":80", nil) } 

不过,我宁愿依赖像nginx这样的工具,因为joewhite86已经提出了。