Repository: gin
Issue: Reverse Proxy issues
Labels: bug

- With issues:
### router
```go
	apiv1.GET("/videos/:vid-id", ProxyVideoHandler)
	apiv1.POST("/upload/:vid-id", ProxyVideoHandler)
```
### handler
```go
func ProxyVideoHandler(c *gin.Context) {
	u, err := url.Parse(setting.AppSetting.ProxyURL)
	if err != nil {
		logging.Info(err)
		c.String(http.StatusInternalServerError, "internal server error")
		return
	}
	proxy := httputil.NewSingleHostReverseProxy(u)
	c.Request.Host = u.Host
	proxy.ServeHTTP(c.Writer, c.Request)
}
```

- isson is
```shell
[GIN] 2018/12/25 - 12:48:58 | 200 |     15.5698ms |       127.0.0.1 | GET      /static/js/jquery-3.3.1.min.js
[GIN] 2018/12/25 - 12:48:58 | 200 |    20.02673ms |       127.0.0.1 | POST     /api/v1/api
[GIN] 2018/12/25 - 12:48:58 | 200 |   40.379618ms |       127.0.0.1 | POST     /api/v1/api
[GIN] 2018/12/25 - 12:48:58 | 200 |     582.992µs |       127.0.0.1 | GET      /static/img/preloader.jpg


2018/12/25 12:48:58 [Recovery] 2018/12/25 - 12:48:58 panic recovered:
GET /api/v1/videos/973fd869-cba7-4dce-a1c7-8ce2626a1046 HTTP/1.1
Host: 127.0.0.1:8080
Accept: */*
Accept-Encoding: identity;q=1, *;q=0
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
Cookie: session=8a9e75ba-ed79-4c5a-8724-ec3a8e796580; username=hhhhh
Range: bytes=0-
Referer: http://127.0.0.1:8080/api/v1/userhome
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36


net/http: abort Handler
/usr/local/opt/go/libexec/src/runtime/panic.go:513 (0x102bcd8)
	gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz))
/usr/local/opt/go/libexec/src/net/http/httputil/reverseproxy.go:284 (0x155a317)
	(*ReverseProxy).ServeHTTP: panic(http.ErrAbortHandler)
/Users/hx/goprojects/src/github.com/haibeichina/gin_video_server/web/routers/api/v1/webhandles.go:174 (0x16030ff)
	ReverseProxy.func1: proxy.ServeHTTP(c.Writer, c.Request)
/Users/hx/GoLang/src/github.com/gin-gonic/gin/context.go:108 (0x155b802)
	(*Context).Next: c.handlers[c.index](c)
/Users/hx/GoLang/src/github.com/gin-gonic/gin/recovery.go:52 (0x156cd99)
	RecoveryWithWriter.func1: c.Next()
/Users/hx/GoLang/src/github.com/gin-gonic/gin/context.go:108 (0x155b802)
	(*Context).Next: c.handlers[c.index](c)
/Users/hx/GoLang/src/github.com/gin-gonic/gin/logger.go:84 (0x156bf21)
	LoggerWithWriter.func1: c.Next()
/Users/hx/GoLang/src/github.com/gin-gonic/gin/context.go:108 (0x155b802)
	(*Context).Next: c.handlers[c.index](c)
/Users/hx/GoLang/src/github.com/gin-gonic/gin/gin.go:362 (0x156409a)
	(*Engine).handleHTTPRequest: c.Next()
/Users/hx/GoLang/src/github.com/gin-gonic/gin/gin.go:328 (0x15638f1)
	(*Engine).ServeHTTP: engine.handleHTTPRequest(c)
/usr/local/opt/go/libexec/src/net/http/server.go:2741 (0x128fdea)
	serverHandler.ServeHTTP: handler.ServeHTTP(rw, req)
/usr/local/opt/go/libexec/src/net/http/server.go:1847 (0x128c045)
	(*conn).serve: serverHandler{c.server}.ServeHTTP(w, w.req)
/usr/local/opt/go/libexec/src/runtime/asm_amd64.s:1333 (0x1059840)
	goexit: BYTE	$0x90	// NOP

[GIN-debug] [WARNING] Headers were already written. Wanted to override status code 206 with 500[GIN] 2018/12/25 - 12:48:58 | 500 |   16.338862ms |       127.0.0.1 | GET      /api/v1/videos/973fd869-cba7-4dce-a1c7-8ce2626a1046
[GIN] 2018/12/25 - 12:48:58 | 206 |    2.352201ms |       127.0.0.1 | GET      /api/v1/videos/973fd869-cba7-4dce-a1c7-8ce2626a1046
[GIN] 2018/12/25 - 12:48:58 | 200 |    74.00254ms |       127.0.0.1 | POST     /api/v1/api
```