Skip to content

Commit 7090cd6

Browse files
committed
add https socket
1 parent 891c9cb commit 7090cd6

File tree

7 files changed

+40
-17
lines changed

7 files changed

+40
-17
lines changed

internal/mode/static/nginx/conf/nginx.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ stream {
4343
variables_hash_bucket_size 512;
4444
variables_hash_max_size 1024;
4545

46-
map_hash_max_size 2048;
47-
map_hash_bucket_size 256;
46+
# map_hash_max_size 2048;
47+
# map_hash_bucket_size 256;
4848
}

internal/mode/static/nginx/config/maps.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ func createStreamMaps(conf dataplane.Configuration) []shared.Map {
5050
Result: getSocketNameTLS(server.Port, server.Hostname),
5151
},
5252
},
53+
UseHostnames: true,
5354
}
5455
maps = append(maps, m)
5556
portsToMap[server.Port] = len(maps) - 1
@@ -61,24 +62,20 @@ func createStreamMaps(conf dataplane.Configuration) []shared.Map {
6162
}
6263
}
6364

64-
coveredPorts := make(map[int32]struct{})
65-
6665
for _, server := range conf.SSLServers {
6766
mapInd, ok := portsToMap[server.Port]
68-
_, covered := coveredPorts[server.Port]
6967

7068
hostname := server.Hostname
7169

7270
if server.IsDefault {
7371
hostname = "default"
7472
}
7573

76-
if ok && !covered {
74+
if ok {
7775
maps[mapInd].Parameters = append(maps[mapInd].Parameters, shared.MapParameter{
7876
Value: hostname,
7977
Result: getSocketNameHTTPS(server.Port),
8078
})
81-
coveredPorts[server.Port] = struct{}{}
8279
}
8380
}
8481

internal/mode/static/nginx/config/maps_template.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ package config
33
const mapsTemplateText = `
44
{{ range $m := . }}
55
map {{ $m.Source }} {{ $m.Variable }} {
6+
7+
{{- if $m.UseHostnames -}}
8+
hostnames;
9+
{{ end }}
10+
611
{{ range $p := $m.Parameters }}
712
{{ $p.Value }} {{ $p.Result }};
813
{{ end }}

internal/mode/static/nginx/config/servers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ func createServers(
165165

166166
_, portInUse := sharedPorts[s.Port]
167167
if portInUse {
168-
listen = getSocketNameTLS(s.Port, s.Hostname)
168+
listen = getSocketNameHTTPS(s.Port)
169169
}
170170
sslServer, matchPair := createSSLServer(s, serverID, listen)
171171
servers = append(servers, sslServer)

internal/mode/static/nginx/config/shared/config.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package shared
22

33
// Map defines an NGINX map.
44
type Map struct {
5-
Source string
6-
Variable string
7-
Parameters []MapParameter
5+
Source string
6+
Variable string
7+
Parameters []MapParameter
8+
UseHostnames bool
89
}
910

1011
// MapParameter Parameter defines a Value and Result pair in a Map.

internal/mode/static/nginx/config/stream_servers.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@ func executeStreamServers(conf dataplane.Configuration) []executeResult {
2929
func createStreamServers(conf dataplane.Configuration) []stream.Server {
3030
streamServers := make([]stream.Server, 0, len(conf.TLSPassthroughServers)*2)
3131
for _, server := range conf.TLSPassthroughServers {
32+
listen := getSocketNameTLS(server.Port, server.Hostname)
3233
streamServers = append(streamServers, stream.Server{
33-
Listen: getSocketNameTLS(server.Port, server.Hostname),
34-
ProxyPass: server.UpstreamName,
35-
SSLPreread: false,
34+
Listen: listen,
35+
ProxyPass: server.UpstreamName,
3636
})
37+
3738
}
3839

3940
portSet := make(map[int32]struct{}, len(streamServers))

internal/mode/static/state/dataplane/configuration.go

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const (
2929
func BuildConfiguration(
3030
ctx context.Context,
3131
g *graph.Graph,
32-
resolver resolver.ServiceResolver,
32+
serviceResolver resolver.ServiceResolver,
3333
generator policies.ConfigGenerator,
3434
configVersion int,
3535
) Configuration {
@@ -41,20 +41,39 @@ func BuildConfiguration(
4141
return Configuration{Version: configVersion}
4242
}
4343

44-
upstreams := buildUpstreams(ctx, g.Gateway.Listeners, resolver)
44+
upstreams := buildUpstreams(ctx, g.Gateway.Listeners, serviceResolver)
4545
httpServers, sslServers := buildServers(g, generator)
4646
backendGroups := buildBackendGroups(append(httpServers, sslServers...))
4747
keyPairs := buildSSLKeyPairs(g.ReferencedSecrets, g.Gateway.Listeners)
4848
certBundles := buildCertBundles(g.ReferencedCaCertConfigMaps, backendGroups)
4949
telemetry := buildTelemetry(g)
5050
baseHTTPConfig := buildBaseHTTPConfig(g)
51-
var tlsServers []Layer4VirtualServer
51+
tlsServers := []Layer4VirtualServer{
52+
{
53+
Hostname: "app.example.com",
54+
UpstreamName: "backend1",
55+
Port: 443,
56+
},
57+
}
58+
streamUpstreams := []Upstream{
59+
{
60+
Name: "backend1",
61+
ErrorMsg: "error",
62+
Endpoints: []resolver.Endpoint{
63+
{
64+
Address: "10.244.0.7",
65+
Port: 8443,
66+
},
67+
},
68+
},
69+
}
5270

5371
config := Configuration{
5472
HTTPServers: httpServers,
5573
SSLServers: sslServers,
5674
TLSPassthroughServers: tlsServers,
5775
Upstreams: upstreams,
76+
StreamUpstreams: streamUpstreams,
5877
BackendGroups: backendGroups,
5978
SSLKeyPairs: keyPairs,
6079
Version: configVersion,

0 commit comments

Comments
 (0)