日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrameWEB服務開發(fā)-服務配置

?GOFrame?框架的?WebServer?配置管理非常方便,支持多種配置方式以及若干配置方法。

10年積累的成都網(wǎng)站設計、網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設流程,更有錦州免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

配置對象

配置對象定義: https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp#ServerConfig

配置管理方法

方法列表: https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp#Server

簡要說明:

  1. 可以通過?SetConfig?及?SetConfigWithMap?來設置。
  2. 也可以使用?Server?對象的?Set*?/?Enable*?方法進行特定配置的設置。
  3. 主要注意的是,配置項在?Server?執(zhí)行?Start?之后便不能再修改,防止產(chǎn)生并發(fā)安全問題。

SetConfigWithMap方法

我們可以使用?SetConfigWithMap?方法通過?Key-Value?鍵值對來設置/修改?Server?的特定配置,其余的配置使用默認配置即可。其中?Key?的名稱即是?ServerConfig?這個?struct?中的屬性名稱,并且不區(qū)分大小寫,單詞間也支持使用?-?/?_?/空格符號連接。

簡單示例:

s := g.Server()
s.SetConfigWithMap(g.Map{
    "Address":    ":80",
    "ServerRoot": "/var/www/MyServerRoot",
})
s.Run()

其中?ServerRoot?的鍵名也可以使用?serverRoot?, ?server-root?, ?server_root?, ?server root?,其他配置屬性以此類推。

一個比較完整的示例:

s := g.Server()
s.SetConfigWithMap(g.Map{
    "address":          ":80",
    "serverRoot":       "/var/www/Server",
    "indexFiles":       g.Slice{"index.html", "main.html"},
    "accessLogEnabled": true,
    "errorLogEnabled":  true,
    "pprofEnabled":     true,
    "logPath":          "/var/log/ServerLog",
    "sessionIdName":    "MySessionId",
    "sessionPath":      "/tmp/MySessionStoragePath",
    "sessionMaxAge":    24 * time.Hour,
    "dumpRouterMap":    false,
})
s.Run()

配置文件

?Server?對象也支持通過配置文件進行便捷的配置。支持的配置選項以及配置說明請查看接口文檔說明,文檔中有詳細說明,以下章節(jié)不會對配置選項作介紹。

當使用?g.Server?(單例名稱)獲取?Server?單例對象時,將會自動通過默認的配置管理對象獲取對應的?Server?配置。默認情況下會讀取?server?.單例名稱配置項,當該配置項不存在時,將會讀取?server?配置項。

支持的配置文件配置項請參考?Server?配置管理對象屬性:https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp#ServerConfig

示例1,默認配置項

[server]
    address    = ":80"
    serverRoot = "/var/www/Server"

隨后可以使用?g.Server()?獲取默認的單例對象時自動獲取并設置該配置。

示例2,多個配置項

多個?Server?的配置示例:

[server]
    address    = ":80"
    serverRoot = "/var/www/Server"
    [server.server1]
        address    = ":8080"
        serverRoot = "/var/www/Server1"
    [server.server2]
        address    = ":8088"
        serverRoot = "/var/www/Server2"

我們可以通過單例對象名稱獲取對應配置的?Server?單例對象:

// 對應 server.server1 配置項
s1 := g.Server("server1")
// 對應 server.server2 配置項
s2 := g.Server("server2")
// 對應默認配置項 server
s3 := g.Server("none")
// 對應默認配置項 server
s4 := g.Server()

示例3,較完整示例

比如上一個章節(jié)的示例,對應的配置文件如下:

[server]
    address          = ":8199"
    serverRoot       = "/var/www/Server"
    indexFiles       = ["index.html", "main.html"]
    accessLogEnabled = true
    errorLogEnabled  = true
    pprofEnabled     = true
    logPath          = "/var/log/ServerLog"
    sessionIdName    = "MySessionId"
    sessionPath      = "/tmp/MySessionStoragePath"
    sessionMaxAge    = "24h"
    dumpRouterMap    = false

同理,配置屬性項的名稱也不區(qū)分大小寫,單詞間也支持使用?-?/?_?符號連接。也就是說以下配置文件效果和上面的配置文件一致:

[server]
    address          = ":8199"
    serverRoot       = "/var/www/Server"
    indexFiles       = ["index.html", "main.html"]
    accessLogEnabled = true
    errorLogEnabled  = true
    pprofEnabled     = true
    log-path         = "/var/log/ServerLog"
    session_Id_Name  = "MySessionId"
    Session-path     = "/tmp/MySessionStoragePath"
    session_MaxAge   = "24h"
    DumpRouterMap    = false

我們推薦配置文件中的配置項名稱統(tǒng)一使用小駝峰的格式。

上傳限制

?Server?對于客戶端提交的數(shù)據(jù)是由大小限制的,主要有兩個配置參數(shù)控制:

  • ?MaxHeaderBytes?:請求頭大小限制,請求頭包括客戶端提交的?Cookie?數(shù)據(jù),默認設置為10KB。
  • ?ClientMaxBodySize?:客戶端提交的?Body?大小限制,同時也影響文件上傳大小,默認設置為8MB。

由于安全性的考慮,默認的上傳限制都不是很高,特別是?ClientMaxBodySize?的大小限制,在需要文件上傳的場景可適當考慮調(diào)整,通過配置文件配置即可,例如:

[server]
    maxHeaderBytes    = "20KB"
    clientMaxBodySize = "200MB"

這樣便修改請求頭大小限制為?20KB?,文件上傳大小限制為?200MB?。如果不想做上傳大小做任何限制,那么將?clientMaxBodySize?設置為0即可。

日志配置

從v2版本開始,?Server?增加了對配置文件中?Logger?的配置項支持,主要是為了統(tǒng)一日志組件配置、并解決日志滾動切分的問題。配置示例:

[server]
    address = ":8080"
    [server.logger]
        path                 = "/var/log/server" 
	    file                 = "{Y-m-d}.log"          
	    stdoutPrint          = false      
	    rotateSize           = "100M"        
	    rotateBackupLimit    = 10
	    rotateBackupExpire   = "60d"
	    rotateBackupCompress = 9
	    rotateCheckInterval  = "24h" 

配置示例

所有的配置項請參考?ServerConfig?對象屬性: https://pkg.go.dev/github.com/gogf/gf/v2/net/ghttp#ServerConfig

以下為配置示例文件:

[server]
    # 基本配置
    address             = ":80"                        # 本地監(jiān)聽地址。默認":80"
	httpsAddr           = ":443"                       # TLS/HTTPS配置,同時需要配置證書和密鑰。默認關閉
	httpsCertPath       = ""                           # TLS/HTTPS證書文件本地路徑,建議使用絕對路徑。默認關閉
	httpsKeyPath        = ""                           # TLS/HTTPS密鑰文件本地路徑,建議使用絕對路徑。默認關閉
	readTimeout         = "60s"                        # 請求讀取超時時間,一般不需要配置。默認為60秒
	writeTimeout        = "0"                          # 數(shù)據(jù)返回寫入超時時間,一般不需要配置。默認不超時(0)
	idleTimeout         = "60s"                        # 僅當Keep-Alive開啟時有效,請求閑置時間。默認為60秒
	maxHeaderBytes      = "10240"                      # 請求Header大小限制(Byte)。默認為10KB
	keepAlive           = true                         # 是否開啟Keep-Alive功能。默認true
	serverAgent         = "GoFrame HTTP Server"        # 服務端Agent信息。默認為"GoFrame HTTP Server"

    # 靜態(tài)服務配置
	indexFiles          = ["index.html","index.htm"]   # 自動首頁靜態(tài)文件檢索。默認為["index.html", "index.htm"]
	indexFolder         = false                        # 當訪問靜態(tài)文件目錄時,是否展示目錄下的文件列表。默認關閉,那么請求將返回403
    serverRoot          = "/var/www"                   # 靜態(tài)文件服務的目錄根路徑,配置時自動開啟靜態(tài)文件服務。默認關閉
	searchPaths         = ["/home/www","/var/lib/www"] # 提供靜態(tài)文件服務時額外的文件搜索路徑,當根路徑找不到時則按照順序在搜索目錄查找。默認關閉
	fileServerEnabled   = false                        # 靜態(tài)文件服務總開關。默認false

    # Cookie配置
	cookieMaxAge        = "365d"             # Cookie有效期。默認為365天
	cookiePath          = "/"                # Cookie有效路徑。默認為"/"表示全站所有路徑下有效
	cookieDomain        = ""                 # Cookie有效域名。默認為當前配置Cookie時的域名

	# Sessions配置
	sessionMaxAge       = "24h"              # Session有效期。默認為24小時
	sessionIdName       = "gfsessionid"      # SessionId的鍵名名稱。默認為gfsessionid
	sessionCookieOutput = true               # Session特性開啟時,是否將SessionId返回到Cookie中。默認true
	sessionPath         = "/tmp/gsessions"   # Session存儲的文件目錄路徑。默認為當前系統(tǒng)臨時目錄下的gsessions目錄

    # Logging配置
	logPath             = ""                 # 日志文件存儲目錄路徑,建議使用絕對路徑。默認為空,表示關閉
    logStdout           = true               # 日志是否輸出到終端。默認為true
    errorStack          = true               # 當Server捕獲到異常時是否記錄堆棧信息到日志中。默認為true
    errorLogEnabled     = true               # 是否記錄異常日志信息到日志中。默認為true
    errorLogPattern     = "error-{Ymd}.log"  # 異常錯誤日志文件格式。默認為"error-{Ymd}.log"
    accessLogEnabled    = false              # 是否記錄訪問日志。默認為false
    accessLogPattern    = "access-{Ymd}.log" # 訪問日志文件格式。默認為"access-{Ymd}.log"

    # PProf配置
	pprofEnabled        = false              # 是否開啟PProf性能調(diào)試特性。默認為false
	pprofPattern        = ""                 # 開啟PProf時有效,表示PProf特性的頁面訪問路徑,對當前Server綁定的所有域名有效。

    # 其他配置
	clientMaxBodySize   = 810241024          # 客戶端最大Body上傳限制大小,影響文件上傳大小(Byte)。默認為8*1024*1024=8MB
	formParsingMemory   = 1048576            # 解析表單時的緩沖區(qū)大小(Byte),一般不需要配置。默認為1024*1024=1MB
	nameToUriType       = 0                  # 路由注冊中使用對象注冊時的路由生成規(guī)則。默認為0
	routeOverWrite      = false              # 當遇到重復路由注冊時是否強制覆蓋。默認為false,重復路由存在時將會在啟動時報錯退出
	dumpRouterMap       = true               # 是否在Server啟動時打印所有的路由列表。默認為true
	graceful            = false              # 是否開啟平滑重啟特性,開啟時將會在本地增加10000的本地TCP端口用于進程間通信。默認false             
    gracefulTimeout     = 2                  # 父進程在平滑重啟后多少秒退出,默認2秒。若請求耗時大于該值,可能會導致請求中斷

分享標題:創(chuàng)新互聯(lián)GoFrame教程:GoFrameWEB服務開發(fā)-服務配置
文章分享:http://m.5511xx.com/article/ccccjce.html