jjzjj

webserver

全部标签

go - 为什么http.HandleFunc对一个请求执行两次?

Thisquestionalreadyhasanswershere:HandleFuncbeingcalledtwice(3个答案)去年关闭。我用golang构建了一个非常简单的网络服务器,以了解http包,但是我发现HandleFunc函数对一个请求执行了两次,并且有一个favicon.ico没想到。这是Web服务器代码:packagemainimport("fmt""log""net/http""strings")//sayHelloNameabasicwebfunctionfuncsayHelloName(whttp.ResponseWriter,r*http.Request){

go - 访问 Golang Web 服务器

我知道Golang包含原生的内置网络服务器(net/http),可以在不使用外部网络服务器(apache、nginx等)的情况下用作服务器。对于本地开发,您只需运行http.ListenAndServe即可在本地准备好您的服务器。我的问题是,如何设置您的golang应用程序以供其他人公开访问而无需外部网络服务器? 最佳答案 在您的golang代码中,除了指定您的应用监听的端口外,您无需执行任何其他操作。设置端口后(例如:8080),您需要执行以下操作以使其可访问:如果您希望您的应用可在内部访问(LAN/WLAN),请检查您的私有(p

rest - HTTP请求被其他HTTP请求篡改,用golang和标准库

猫main.go:``packagemainimport("encoding/json""log""net""net/http""net/http/fcgi""os")funcmain(){//setuptheconfigconfigFile:="config.json"fd,err:=os.Open(configFile)iferr!=nil{log.Fatalf("Can'topenconfigfile:%v",configFile)}CFG:=config{}err=json.NewDecoder(fd).Decode(&CFG)iferr!=nil{log.Fatalf("pa

go - 简单的 Web 服务器实现 : GoLang

我正在尝试使用Go实现一个简单的Web服务器。我希望“HelloWorld”显示在客户端浏览器的URL“http://127.0.0.1.12000/”处。我尝试了以下代码,但以错误告终。packagemainimport"net"import"fmt"import"bufio"//import"strings"//onlyneededbelowforsampleprocessingfuncmain(){fmt.Println("Launchingserver...")//listenonallinterfacesln,err:=net.Listen("tcp",":12000")if

web-services - 在后台运行 golang web 服务器

在后台运行go服务器的最简单方法是什么?我目前让服务器在CMD中运行,并且不想更改实际代码。 最佳答案 我会使用屏幕。假设Ubuntu18.04:sudoapt-getinstallscreen然后screen然后gorunmain.go使用Ctrl+A+D退出屏幕。要返回它:screen-r 关于web-services-在后台运行golangweb服务器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

http - 如何在 GO 中获取 LocalAddress?

我在go中制作了一个充当代理的网络服务器。我需要获取有关客户的信息才能做出回应。这是我的代码:funcmain(){li,err:=net.Listen("tcp",":8000")iferr!=nil{log.Fatalln(err.Error())}deferli.Close()for{conn,err:=li.Accept()iferr!=nil{log.Fatalln(err.Error())}local:=conn.LocalAddrremote:=conn.RemoteAddrfmt.Println(string(local.Network))fmt.Println(str

web - 使用 Golang 构建服务器但在客户端出现问题

这是我的代码:packagemainimport("fmt""net""net/http""os")constRECV_BUF_LEN=1024funchandler(whttp.ResponseWriter,r*http.Request){fmt.Fprint(w,"Test")}funcmain(){http.HandleFunc("/",handler)s:=&http.Server{Addr:":8080",Handler:nil}listener,err:=net.Listen("tcp",s.Addr)iferr!=nil{fmt.Println("Error:",err.

go - 如何在 golang 网络服务器中使用 prometheus 监控请求成本时间

我有几个url可以访问,我想用prometheus监控每个请求的成本时间。但我不知道使用哪种指标来收集数据。有什么帮助吗?这是演示代码:packagemainimport("github.com/prometheus/client_golang/prometheus""io/ioutil""net/http""fmt""time")var(resTime=prometheus.NewSummaryVec(prometheus.SummaryOpts{Name:"response_time",Help:"costtimeperrequest",},[]string{"costTime"}

随着请求数量的增加,Go 网络服务器性能急剧下降

我正在使用wrk对一个用Go编写的简单网络服务器进行基准测试。服务器在具有4GBRAM的机器上运行。在测试开始时,代码服务高达2000个请求/秒,性能非常好。但随着时间的推移,进程使用的内存逐渐增加,一旦达到85%(我正在使用top进行检查),吞吐量就会下降到约100个请求/秒。一旦我重新启动服务器,吞吐量再次增加到最佳数量。性能下降是内存问题吗?为什么Go不释放这段内存?我的Go服务器看起来像这样:funcmain(){deferfunc(){//Waitforallmessagestodrainoutbeforeclosingtheproducerp.Flush(1000)p.Cl

.htaccess - 没有 Nginx 或 Apache 的 Golang htaccess 配置

我创建了webapp并用Googlesiteanalyzer进行分析.在大多数情况下,我需要配置htaccess文件。据我了解,此文件只能在Nginx或Apache服务器上使用,但我不想使用其中任何一个。我只想使用golang工具配置htaccess。目前我的应用程序在VPS服务器上运行。 最佳答案 此项目允许您使用GO、零apache代码支持http身份验证标准。您甚至可以使用通过Apachehtpasswd(坏)或htdigest(好)命令创建的密码文件:https://github.com/abbot/go-http-auth