如何在不同的路径下运行此图像代理?

时间:2017-12-10 05:02:42

标签: go

我正在使用https://github.com/willnorris/imageproxy代表用户获取图片并调整图片大小。默认应用程序有效,但我想将其与现有服务器集成,并将路径更改为“/ proxy /”,因为“/”将用于我的主应用程序。我也不想单独运行它,因为它只是我需要的几行。我有:

p := imageproxy.NewProxy(nil, nil)
p.SignatureKey = []byte("secret key")
p.Timeout = 10 * time.Second

router := mux.NewRouter().StrictSlash(true)
router.NewRoute().Name("proxy").Methods("GET").Path("/proxy/").Handler(p)

server := &http.Server{
    Addr:    "127.0.0.1:8000",
    Handler: router,
}

我收到的每张图片都有“找不到404页”。将其更改为:

server := &http.Server{
    Addr:    "localhost:8000",
    Handler: p,
}

log.Fatal(server.ListenAndServe()) 

的工作原理。是否可以改变路径?

1 个答案:

答案 0 :(得分:2)

使用http.StripPrefix删除" / proxy"在调用图像代理处理程序之前从请求路径:

router.NewRoute().Name("proxy").Methods("GET").PathPrefix("/proxy/").Handler(http.StripPrefix("/proxy", p))

另外,在下面的所有路径上使用PathPrefix代替路径进行匹配" / proxy"。