diff --git a/config/serverblock.go b/config/serverblock.go index a99de4c..2581c9d 100644 --- a/config/serverblock.go +++ b/config/serverblock.go @@ -10,15 +10,18 @@ type ServerBlock struct { func (s *ServerBlock) GetServerNames() []string { serverNames := []string{} - directives := s.FindDirectives("server_name") if len(directives) == 0 { return serverNames } - for _, value := range directives[0].GetValues() { - serverNames = append(serverNames, strings.TrimSpace(value)) + for _, directive := range directives { + serverNames = append(serverNames, directive.GetValues()...) + } + + for index, serverName := range serverNames { + serverNames[index] = strings.TrimSpace(serverName) } return serverNames diff --git a/config/serverblock_test.go b/config/serverblock_test.go index 81fc477..43c4bfb 100644 --- a/config/serverblock_test.go +++ b/config/serverblock_test.go @@ -36,7 +36,7 @@ func TestServerBlock(t *testing.T) { block := serverBlocks[0] assert.Equal(t, "server", block.GetName()) - assert.ElementsMatch(t, block.GetServerNames(), []string{"example2.com", "www.example2.com"}) + assert.ElementsMatch(t, block.GetServerNames(), []string{"example2.com", "www.example2.com", "alias.example2.com"}) assert.Equal(t, true, block.HasSSL()) assert.Equal(t, "/var/www/html", block.GetDocumentRoot()) diff --git a/test/nginx/sites-enabled/example2.com.conf b/test/nginx/sites-enabled/example2.com.conf index f16e6eb..b07820b 100644 --- a/test/nginx/sites-enabled/example2.com.conf +++ b/test/nginx/sites-enabled/example2.com.conf @@ -44,6 +44,7 @@ server { # inline comment index index.html index.htm index.nginx-debian.html; server_name example2.com www.example2.com; + server_name alias.example2.com; location / { # First attempt to serve request as file, then