mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-26 13:43:47 +03:00
file_server: Use HTTPS port when a qualifying domain is specified
Also little comment cleanups
This commit is contained in:
parent
b43e986a52
commit
9fe54e1c60
2 changed files with 13 additions and 9 deletions
|
@ -18,12 +18,14 @@ import (
|
|||
"encoding/json"
|
||||
"flag"
|
||||
"log"
|
||||
"strconv"
|
||||
|
||||
"github.com/caddyserver/caddy/v2"
|
||||
"github.com/caddyserver/caddy/v2/caddyconfig"
|
||||
"github.com/caddyserver/caddy/v2/caddyconfig/httpcaddyfile"
|
||||
caddycmd "github.com/caddyserver/caddy/v2/cmd"
|
||||
"github.com/caddyserver/caddy/v2/modules/caddyhttp"
|
||||
"github.com/mholt/certmagic"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -36,12 +38,13 @@ func init() {
|
|||
A simple but production-ready file server. Useful for quick deployments,
|
||||
demos, and development.
|
||||
|
||||
If a qualifying hostname is specified with --domain, the server will use
|
||||
HTTPS if domain validation succeeds. Ensure A/AAAA records are properly
|
||||
configured before using this option.
|
||||
|
||||
The listener's socket address can be customized with the --listen flag.
|
||||
|
||||
If a qualifying hostname is specified with --domain, the default listener
|
||||
address will be changed to the HTTPS port and the server will use HTTPS
|
||||
if domain validation succeeds. Ensure A/AAAA records are properly
|
||||
configured before using this option.
|
||||
|
||||
If --browse is enabled, requests for folders without an index file will
|
||||
respond with a file listing.`,
|
||||
Flags: func() *flag.FlagSet {
|
||||
|
@ -83,7 +86,11 @@ func cmdFileServer(fs caddycmd.Flags) (int, error) {
|
|||
Routes: caddyhttp.RouteList{route},
|
||||
}
|
||||
if listen == "" {
|
||||
listen = ":" + httpcaddyfile.DefaultPort
|
||||
if certmagic.HostQualifies(domain) {
|
||||
listen = ":" + strconv.Itoa(certmagic.HTTPSPort)
|
||||
} else {
|
||||
listen = ":" + httpcaddyfile.DefaultPort
|
||||
}
|
||||
}
|
||||
server.Listen = []string{listen}
|
||||
|
||||
|
|
|
@ -150,9 +150,6 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
|
|||
return fsrv.notFound(w, r, next)
|
||||
}
|
||||
|
||||
// TODO: maybe there should be a way to serve the next handler
|
||||
// instead of returning 404 if a file is not found?
|
||||
|
||||
// TODO: content negotiation (brotli sidecar files, etc...)
|
||||
|
||||
// one last check to ensure the file isn't hidden (we might
|
||||
|
@ -193,7 +190,7 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
|
|||
if mtyp == "" {
|
||||
// do not allow Go to sniff the content-type; see
|
||||
// https://www.youtube.com/watch?v=8t8JYpt0egE
|
||||
// TODO: Consider writing a default mime type of application/octet-stream - this is secure but violates spec
|
||||
// TODO: If we want a Content-Type, consider writing a default of application/octet-stream - this is secure but violates spec
|
||||
w.Header()["Content-Type"] = nil
|
||||
} else {
|
||||
w.Header().Set("Content-Type", mtyp)
|
||||
|
|
Loading…
Reference in a new issue