-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
# [Chi](https://github.com/go-chi/chi) proxy middleware
Forwarded headers middleware to use if application is run behind reverse proxy.
[](https://pkg.go.dev/github.com/chi-middleware/proxy)
[](https://codecov.io/gh/chi-middleware/proxy)
[](https://goreportcard.com/report/github.com/chi-middleware/proxy)
[](https://cloud.drone.io/chi-middleware/proxy)
## Usage
Import using:
```go
import "github.com/chi-middleware/proxy"
```
Use middleware with default options (trusted from proxy `127.0.0.1` and trusts only last IP address provided in header):
```go
r := chi.NewRouter()
r.Use(proxy.ForwardedHeaders())
```
Extend default options:
```go
r := chi.NewRouter()
r.Use(proxy.ForwardedHeaders(
proxy.NewForwardedHeadersOptions().
WithForwardLimit(2).
ClearTrustedProxies().AddTrustedProxy("10.0.0.1"),
))
```
Provide custom options:
```go
r := chi.NewRouter()
r.Use(proxy.ForwardedHeaders(&ForwardedHeadersOptions{
ForwardLimit: 1,
TrustedProxies: []net.IP{
net.IPv4(10, 0, 0, 1),
},
}))
```