Python 将url路径重定向到端口
我有许多web应用程序在服务器上运行。其中一些是我制作的,一些是开源的,比如开源云。我的所有web应用程序都在特定端口上运行。我的端口80仍然可用 我想在端口80上为我的所有应用制作一个漂亮的欢迎网页,让我的同事在本地网络上看到它们 我的问题是设置URL映射。我想要这条路http://machine-name:80/open-云/那就完全一样了http://machine-name:8080/ 如果可能,包括静态文件 另一个可能的解决方案是使用子域,例如http://open-cloud.machine-name:80/ 对于每个应用程序。但我不知道如何在本地网络中做到这一点 我正在寻找Python、node.js或Go中的解决方案,这将非常棒!。需要注意的是,我的web应用程序没有一个是在ssl上运行的,它可能会处理非常低的流量。它毕竟只是一个本地网络 欢迎提供任何帮助和参考Python 将url路径重定向到端口,python,node.js,network-programming,go,Python,Node.js,Network Programming,Go,我有许多web应用程序在服务器上运行。其中一些是我制作的,一些是开源的,比如开源云。我的所有web应用程序都在特定端口上运行。我的端口80仍然可用 我想在端口80上为我的所有应用制作一个漂亮的欢迎网页,让我的同事在本地网络上看到它们 我的问题是设置URL映射。我想要这条路http://machine-name:80/open-云/那就完全一样了http://machine-name:8080/ 如果可能,包括静态文件 另一个可能的解决方案是使用子域,例如http://open-cloud.mac
干杯 您只需要某种代理,例如 然后将您想要的域传递到您的应用程序端口:
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;
}
}
您只需要某种代理,例如 然后将您想要的域传递到您的应用程序端口:
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编写自己的解决方案,您可以为每个URL设置一个 像这样:
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)
}
然而,我宁愿依赖joewhite86已经提出的nginx这样的工具。如果您坚持用Go编写自己的解决方案,您可以为每个URL设置一个 像这样:
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)
}
然而,我宁愿依赖joewhite86已经提出的nginx这样的工具。既然可以用nginx这样的工具来做,为什么还要编写这样的程序?顺便说一句,用围棋只需写几十行代码就可以了。既然可以用nginx这样的东西来写,为什么还要写这样的程序呢?顺便说一句,用围棋写几十行代码很简单。我同意nginx,这就是我将要使用的。尽管如此,我也会考虑你的解决方案,因为我需要更认真地去做!我同意nginx,这就是我将使用的。尽管如此,我也会考虑你的解决方案,因为我需要更认真地去做!非常感谢你的邀请!它解决了我的问题。我知道这是一个基本的问题,但我很难找到一个优雅的解决方案。非常感谢!它解决了我的问题。我知道这是一个基本问题,但我很难找到一个优雅的解决方案。