Skip to content

Commit

Permalink
fastcgi: Set SERVER_PORT to 80 or 443 depending on scheme (#4572)
Browse files Browse the repository at this point in the history
  • Loading branch information
ttys3 authored Mar 2, 2022
1 parent bbad693 commit de490c7
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go
Original file line number Diff line number Diff line change
Expand Up @@ -296,10 +296,15 @@ func (t Transport) buildEnv(r *http.Request) (envVars, error) {
}

// compliance with the CGI specification requires that
// SERVER_PORT should only exist if it's a valid numeric value.
// Info: https://www.ietf.org/rfc/rfc3875 Page 18
// the SERVER_PORT variable MUST be set to the TCP/IP port number on which this request is received from the client
// even if the port is the default port for the scheme and could otherwise be omitted from a URI.
// https://tools.ietf.org/html/rfc3875#section-4.1.15
if reqPort != "" {
env["SERVER_PORT"] = reqPort
} else if requestScheme == "http" {
env["SERVER_PORT"] = "80"
} else if requestScheme == "https" {
env["SERVER_PORT"] = "443"
}

// Some web apps rely on knowing HTTPS or not
Expand Down

0 comments on commit de490c7

Please sign in to comment.