Skip to content

Commit 84645c7

Browse files
committed
feat: make usage of X-Real-IP and X-Forwarded-For header configurable
1 parent 3ec867c commit 84645c7

3 files changed

Lines changed: 10 additions & 0 deletions

File tree

config.sample.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ prometheus:
1313
listen_port: 8080
1414
metrics_url: "/metrics"
1515
expose_system_metrics: false
16+
real_ip: false
1617
whitelist:
1718
- "127.0.0.1/8"

internal/config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ var (
1919
type ServerConfig struct {
2020
ListenAddr string `yaml:"listen_addr"`
2121
ListenPort int `yaml:"listen_port"`
22+
RealIP bool `yaml:"real_ip"`
2223
Whitelist []string `yaml:"whitelist"`
2324
}
2425

internal/web/server.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,10 @@ func NewMetricsServer(networkIf string, port int, certPath, keyPath string) *Web
242242
server.initServer()
243243
server.routes.Use(middleware.Recoverer)
244244

245+
if config.AppConfig.Prometheus.RealIP {
246+
server.routes.Use(middleware.RealIP)
247+
}
248+
245249
// Enable IP whitelist if configured
246250
if len(config.AppConfig.Prometheus.Whitelist) > 0 {
247251
server.routes.Use(IPWhitelist)
@@ -262,6 +266,10 @@ func NewWebsocketServer(networkIf string, port int, certPath, keyPath string) *W
262266
}
263267
server.initServer()
264268

269+
if config.AppConfig.Webserver.RealIP {
270+
server.routes.Use(middleware.RealIP)
271+
}
272+
265273
// Enable IP whitelist if configured
266274
if len(config.AppConfig.Webserver.Whitelist) > 0 {
267275
server.routes.Use(IPWhitelist)

0 commit comments

Comments
 (0)