mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-08-24 14:35:35 +08:00
weed filer, weed master: add option to disable http
This commit is contained in:
parent
531add52c2
commit
a3490b600c
@ -33,6 +33,7 @@ type FilerOptions struct {
|
|||||||
dirListingLimit *int
|
dirListingLimit *int
|
||||||
dataCenter *string
|
dataCenter *string
|
||||||
enableNotification *bool
|
enableNotification *bool
|
||||||
|
disableHttp *bool
|
||||||
|
|
||||||
// default leveldb directory, used in "weed server" mode
|
// default leveldb directory, used in "weed server" mode
|
||||||
defaultLevelDbDirectory *string
|
defaultLevelDbDirectory *string
|
||||||
@ -52,6 +53,7 @@ func init() {
|
|||||||
f.maxMB = cmdFiler.Flag.Int("maxMB", 32, "split files larger than the limit")
|
f.maxMB = cmdFiler.Flag.Int("maxMB", 32, "split files larger than the limit")
|
||||||
f.dirListingLimit = cmdFiler.Flag.Int("dirListLimit", 100000, "limit sub dir listing size")
|
f.dirListingLimit = cmdFiler.Flag.Int("dirListLimit", 100000, "limit sub dir listing size")
|
||||||
f.dataCenter = cmdFiler.Flag.String("dataCenter", "", "prefer to write to volumes in this data center")
|
f.dataCenter = cmdFiler.Flag.String("dataCenter", "", "prefer to write to volumes in this data center")
|
||||||
|
f.disableHttp = cmdFiler.Flag.Bool("disableHttp", false, "disable http request, only gRpc operations are allowed")
|
||||||
}
|
}
|
||||||
|
|
||||||
var cmdFiler = &Command{
|
var cmdFiler = &Command{
|
||||||
@ -108,6 +110,7 @@ func (fo *FilerOptions) startFiler() {
|
|||||||
DirListingLimit: *fo.dirListingLimit,
|
DirListingLimit: *fo.dirListingLimit,
|
||||||
DataCenter: *fo.dataCenter,
|
DataCenter: *fo.dataCenter,
|
||||||
DefaultLevelDbDir: defaultLevelDbDirectory,
|
DefaultLevelDbDir: defaultLevelDbDirectory,
|
||||||
|
DisableHttp: *fo.disableHttp,
|
||||||
})
|
})
|
||||||
if nfs_err != nil {
|
if nfs_err != nil {
|
||||||
glog.Fatalf("Filer startup error: %v", nfs_err)
|
glog.Fatalf("Filer startup error: %v", nfs_err)
|
||||||
|
@ -47,7 +47,7 @@ var (
|
|||||||
mMaxCpu = cmdMaster.Flag.Int("maxCpu", 0, "maximum number of CPUs. 0 means all available CPUs")
|
mMaxCpu = cmdMaster.Flag.Int("maxCpu", 0, "maximum number of CPUs. 0 means all available CPUs")
|
||||||
garbageThreshold = cmdMaster.Flag.Float64("garbageThreshold", 0.3, "threshold to vacuum and reclaim spaces")
|
garbageThreshold = cmdMaster.Flag.Float64("garbageThreshold", 0.3, "threshold to vacuum and reclaim spaces")
|
||||||
masterWhiteListOption = cmdMaster.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.")
|
masterWhiteListOption = cmdMaster.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.")
|
||||||
httpReadOnly = cmdMaster.Flag.Bool("httpReadOnly", false, "disable http operations, only gRPC operations are allowed.")
|
disableHttp = cmdMaster.Flag.Bool("disableHttp", false, "disable http requests, only gRPC operations are allowed.")
|
||||||
masterCpuProfile = cmdMaster.Flag.String("cpuprofile", "", "cpu profile output file")
|
masterCpuProfile = cmdMaster.Flag.String("cpuprofile", "", "cpu profile output file")
|
||||||
masterMemProfile = cmdMaster.Flag.String("memprofile", "", "memory profile output file")
|
masterMemProfile = cmdMaster.Flag.String("memprofile", "", "memory profile output file")
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ func runMaster(cmd *Command, args []string) bool {
|
|||||||
*volumeSizeLimitMB, *volumePreallocate,
|
*volumeSizeLimitMB, *volumePreallocate,
|
||||||
*mpulse, *defaultReplicaPlacement, *garbageThreshold,
|
*mpulse, *defaultReplicaPlacement, *garbageThreshold,
|
||||||
masterWhiteList,
|
masterWhiteList,
|
||||||
*httpReadOnly,
|
*disableHttp,
|
||||||
)
|
)
|
||||||
|
|
||||||
listeningAddress := *masterBindIp + ":" + strconv.Itoa(*mport)
|
listeningAddress := *masterBindIp + ":" + strconv.Itoa(*mport)
|
||||||
|
@ -60,7 +60,7 @@ var (
|
|||||||
serverDataCenter = cmdServer.Flag.String("dataCenter", "", "current volume server's data center name")
|
serverDataCenter = cmdServer.Flag.String("dataCenter", "", "current volume server's data center name")
|
||||||
serverRack = cmdServer.Flag.String("rack", "", "current volume server's rack name")
|
serverRack = cmdServer.Flag.String("rack", "", "current volume server's rack name")
|
||||||
serverWhiteListOption = cmdServer.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.")
|
serverWhiteListOption = cmdServer.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.")
|
||||||
masterHttpReadOnly = cmdServer.Flag.Bool("master.httpReadOnly", false, "disable http operations, only gRPC operations are allowed.")
|
serverDisableHttp = cmdServer.Flag.Bool("disableHttp", false, "disable http requests, only gRPC operations are allowed.")
|
||||||
serverPeers = cmdServer.Flag.String("master.peers", "", "all master nodes in comma separated ip:masterPort list")
|
serverPeers = cmdServer.Flag.String("master.peers", "", "all master nodes in comma separated ip:masterPort list")
|
||||||
serverGarbageThreshold = cmdServer.Flag.Float64("garbageThreshold", 0.3, "threshold to vacuum and reclaim spaces")
|
serverGarbageThreshold = cmdServer.Flag.Float64("garbageThreshold", 0.3, "threshold to vacuum and reclaim spaces")
|
||||||
masterPort = cmdServer.Flag.Int("master.port", 9333, "master server http listen port")
|
masterPort = cmdServer.Flag.Int("master.port", 9333, "master server http listen port")
|
||||||
@ -127,6 +127,7 @@ func runServer(cmd *Command, args []string) bool {
|
|||||||
serverOptions.v.pulseSeconds = pulseSeconds
|
serverOptions.v.pulseSeconds = pulseSeconds
|
||||||
|
|
||||||
filerOptions.dataCenter = serverDataCenter
|
filerOptions.dataCenter = serverDataCenter
|
||||||
|
filerOptions.disableHttp = serverDisableHttp
|
||||||
|
|
||||||
if *filerOptions.defaultReplicaPlacement == "" {
|
if *filerOptions.defaultReplicaPlacement == "" {
|
||||||
*filerOptions.defaultReplicaPlacement = *masterDefaultReplicaPlacement
|
*filerOptions.defaultReplicaPlacement = *masterDefaultReplicaPlacement
|
||||||
@ -173,7 +174,7 @@ func runServer(cmd *Command, args []string) bool {
|
|||||||
ms := weed_server.NewMasterServer(r, *masterPort, *masterMetaFolder,
|
ms := weed_server.NewMasterServer(r, *masterPort, *masterMetaFolder,
|
||||||
*masterVolumeSizeLimitMB, *masterVolumePreallocate,
|
*masterVolumeSizeLimitMB, *masterVolumePreallocate,
|
||||||
*pulseSeconds, *masterDefaultReplicaPlacement, *serverGarbageThreshold,
|
*pulseSeconds, *masterDefaultReplicaPlacement, *serverGarbageThreshold,
|
||||||
serverWhiteList, *masterHttpReadOnly,
|
serverWhiteList, *serverDisableHttp,
|
||||||
)
|
)
|
||||||
|
|
||||||
glog.V(0).Infof("Start Seaweed Master %s at %s:%d", util.VERSION, *serverIp, *masterPort)
|
glog.V(0).Infof("Start Seaweed Master %s at %s:%d", util.VERSION, *serverIp, *masterPort)
|
||||||
|
@ -34,6 +34,7 @@ type FilerOption struct {
|
|||||||
DirListingLimit int
|
DirListingLimit int
|
||||||
DataCenter string
|
DataCenter string
|
||||||
DefaultLevelDbDir string
|
DefaultLevelDbDir string
|
||||||
|
DisableHttp bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type FilerServer struct {
|
type FilerServer struct {
|
||||||
@ -74,7 +75,9 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption)
|
|||||||
notification.LoadConfiguration(v.Sub("notification"))
|
notification.LoadConfiguration(v.Sub("notification"))
|
||||||
|
|
||||||
handleStaticResources(defaultMux)
|
handleStaticResources(defaultMux)
|
||||||
|
if !option.DisableHttp {
|
||||||
defaultMux.HandleFunc("/", fs.filerHandler)
|
defaultMux.HandleFunc("/", fs.filerHandler)
|
||||||
|
}
|
||||||
if defaultMux != readonlyMux {
|
if defaultMux != readonlyMux {
|
||||||
readonlyMux.HandleFunc("/", fs.readonlyFilerHandler)
|
readonlyMux.HandleFunc("/", fs.readonlyFilerHandler)
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string,
|
|||||||
defaultReplicaPlacement string,
|
defaultReplicaPlacement string,
|
||||||
garbageThreshold float64,
|
garbageThreshold float64,
|
||||||
whiteList []string,
|
whiteList []string,
|
||||||
httpReadOnly bool,
|
disableHttp bool,
|
||||||
) *MasterServer {
|
) *MasterServer {
|
||||||
|
|
||||||
v := viper.GetViper()
|
v := viper.GetViper()
|
||||||
@ -77,10 +77,10 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string,
|
|||||||
|
|
||||||
ms.guard = security.NewGuard(whiteList, signingKey)
|
ms.guard = security.NewGuard(whiteList, signingKey)
|
||||||
|
|
||||||
|
if !disableHttp {
|
||||||
handleStaticResources2(r)
|
handleStaticResources2(r)
|
||||||
r.HandleFunc("/", ms.uiStatusHandler)
|
r.HandleFunc("/", ms.uiStatusHandler)
|
||||||
r.HandleFunc("/ui/index.html", ms.uiStatusHandler)
|
r.HandleFunc("/ui/index.html", ms.uiStatusHandler)
|
||||||
if !httpReadOnly {
|
|
||||||
r.HandleFunc("/dir/assign", ms.proxyToLeader(ms.guard.WhiteList(ms.dirAssignHandler)))
|
r.HandleFunc("/dir/assign", ms.proxyToLeader(ms.guard.WhiteList(ms.dirAssignHandler)))
|
||||||
r.HandleFunc("/dir/lookup", ms.proxyToLeader(ms.guard.WhiteList(ms.dirLookupHandler)))
|
r.HandleFunc("/dir/lookup", ms.proxyToLeader(ms.guard.WhiteList(ms.dirLookupHandler)))
|
||||||
r.HandleFunc("/dir/status", ms.proxyToLeader(ms.guard.WhiteList(ms.dirStatusHandler)))
|
r.HandleFunc("/dir/status", ms.proxyToLeader(ms.guard.WhiteList(ms.dirStatusHandler)))
|
||||||
@ -89,11 +89,9 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string,
|
|||||||
r.HandleFunc("/vol/status", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeStatusHandler)))
|
r.HandleFunc("/vol/status", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeStatusHandler)))
|
||||||
r.HandleFunc("/vol/vacuum", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeVacuumHandler)))
|
r.HandleFunc("/vol/vacuum", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeVacuumHandler)))
|
||||||
r.HandleFunc("/submit", ms.guard.WhiteList(ms.submitFromMasterServerHandler))
|
r.HandleFunc("/submit", ms.guard.WhiteList(ms.submitFromMasterServerHandler))
|
||||||
}
|
|
||||||
r.HandleFunc("/stats/health", ms.guard.WhiteList(statsHealthHandler))
|
r.HandleFunc("/stats/health", ms.guard.WhiteList(statsHealthHandler))
|
||||||
r.HandleFunc("/stats/counter", ms.guard.WhiteList(statsCounterHandler))
|
r.HandleFunc("/stats/counter", ms.guard.WhiteList(statsCounterHandler))
|
||||||
r.HandleFunc("/stats/memory", ms.guard.WhiteList(statsMemoryHandler))
|
r.HandleFunc("/stats/memory", ms.guard.WhiteList(statsMemoryHandler))
|
||||||
if !httpReadOnly {
|
|
||||||
r.HandleFunc("/{fileId}", ms.proxyToLeader(ms.redirectHandler))
|
r.HandleFunc("/{fileId}", ms.proxyToLeader(ms.redirectHandler))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user