Skip to content

Commit 0a1495d

Browse files
author
Signal Linden
authored
Merge pull request #7 from secondlife/signal/host
Mirror Host header to upstream server
2 parents af427d0 + 2c262e8 commit 0a1495d

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/etc/nginx/templates/default.conf.template

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
server {
22
listen {{ .Env.LISTEN_PORT }};
3-
server_name localhost;
3+
server_name _;
44
add_header X-Request-ID $request_id;
55

66
# Security Headers
@@ -11,6 +11,7 @@ server {
1111
location / {
1212
proxy_pass {{ .Env.PROXY_REVERSE_URL }};
1313
proxy_set_header X-Request-ID $request_id;
14+
proxy_set_header Host $host;
1415
}
1516

1617
{{ if .Env.STATIC_LOCATIONS }}

test/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ func ok(w http.ResponseWriter, req *http.Request) {
1010
w.Header().Set("X-Powered-By", "1")
1111
w.Header().Set("X-Rack-Cache", "1")
1212
w.Header().Set("X-Runtime", "1")
13+
// Forward request host so that it can be evaluated as part of tests
14+
w.Header().Set("X-Test-Host", req.Host)
1315
fmt.Println("GET /")
1416
fmt.Fprintf(w, "ok\n")
1517
}

test/main_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ func TestProxy(t *testing.T) {
7474
t.Fatal(err)
7575
}
7676

77+
parsed, err := url.Parse(u)
78+
if err != nil {
79+
t.Fatal(err)
80+
}
81+
7782
req, err := http.NewRequest("GET", u, nil)
7883

7984
if err != nil {
@@ -118,4 +123,10 @@ func TestProxy(t *testing.T) {
118123
t.Fatalf("Expected %s header to be set", k)
119124
}
120125
}
126+
127+
expectedHost := strings.Split(parsed.Host, ":")[0]
128+
hostHeader := res.Header.Get("X-Test-Host")
129+
if hostHeader != expectedHost {
130+
t.Fatalf("Expected Host header to be %s, got %s", expectedHost, hostHeader)
131+
}
121132
}

0 commit comments

Comments
 (0)