草庐IT

上下文Nginx

全部标签

html - 无法通过 nginx 使用我的 goapp 提供静态文件

我正在Ubuntu服务器上制作我的第一个go应用程序。当我使用可执行文件或简单地运行main.go来运行我的服务器时,我得到了要呈现的初始html页面,但没有css、图像或js。这些路线还将我带到404页面。唯一似乎通过的是index.html(它被命名为index.gohtml作为go的模板)当我在本地主机和服务器上的ip:port配置上运行它时,我的所有Assets都被加载,但是当我使用nginx时,Assets根本没有加载。由于这些因素,我假设nginx是我遇到问题的地方。以下是我目前所拥有的。这是我第一次使用nginx,所以我不知道正确配置它需要什么。server{listen

nginx - Beanstalk 中的负载均衡 go 服务器

我正在尝试在使用GRPC/Protobuf进行数据序列化的AWSbeanstalk中对go服务器进行负载平衡。Beanstalk提供nginx作为客户端-服务器通信的反向代理,它使用http1.1协议(protocol)。这导致在代理和服务器之间交换虚假消息,但客户端消息似乎永远不会按预期到达服务器。任何干净的想法都会在这里有所帮助。 最佳答案 Nginx还不支持后端的http/2。我们中的一些人正在努力解决这个问题,但还需要四分之一的时间才能到达上游。您可以等待或使用Envoy(https://github.com/lyft/en

go - 为什么 nsqlookupd 包使用上下文?

当我阅读nsq源码的nsqlookupd部分时,我发现作者使用了一个Contexttruct来包装一个NSQLookupdstruct而没有为Context使用其他的funcs。我不知道为什么我们这样使用它,我们有什么好处可以通过这种方式吗?下面的源代码在这里。谢谢!上下文.gotypeContextstruct{nsqlookupd*NSQLookupd}nsqlookupd.gofunc(l*NSQLookupd)Main(){ctx:=&Context{l}tcpListener,err:=net.Listen("tcp",l.opts.TCPAddress)iferr!=nil

docker - nginx反向代理到Golang服务器的Docker问题

我将nginx反向代理到golang服务器,每个代理都在其自己的docker容器中并正常运行。尝试连接到Go容器时,在我的本地Mac计算机和生产服务器LinuxDebian上,我都一直在Nginx中收到此错误。一周前,它在我的本地Mac机器上运行,突然之间不再可用nginx_1|2017/09/2801:29:54[error]5#5:*12upstreamtimedout(110:Connectiontimedout)whileconnectingtoupstream,client:172.23.0.1,server:,request:"GET/api/aboutHTTP/1.1",

go - 如何在grpc服务器端使用从客户端传递过来的上下文

我已经在grpc服务中定义了一个端点。现在,当客户端使用某些上下文调用端点时,我应该如何处理该上下文、它的到期/截止日期等?我的意思是在服务端,我要执行一系列的步骤来完成请求。它包括一些处理、写入数据存储等。现在我应该如何尊重上下文。是不是在流程的每一步之后,我都需要检查上下文是否完成?如果完成了,我就直接返回而不进行下一步?但这感觉不对。在GRPC/Go中正确的做法是什么? 最佳答案 服务处理程序获取的上下文中设置了截止日期(客户端设置的截止日期)。Go的方式是在您的每一步中传递该上下文,如果这些步骤中的任何一个阻塞,您也会在该上

goroutine 泄漏上下文超时?

在下面的代码中,客户端将字符串放在服务的输入channel上,并在输出channel或错误channel上监听回复。上下文设置了5毫秒超时。func(sservice)run(){代码正确超时(由于10mssleep)并输出error:ctxdone但是,“runexit”永远不会打印出来。问题:是否存在goroutineleakwithprocessesstuckons.outputGoPlayground例子 最佳答案 上下文有5毫秒的超时,你在这行s.output之前睡了10毫秒运行。所以上下文首先超时并且发生错误,这是正确的

go - 如何在 Gin 的上下文中获取匹配的路由?

我有这段代码:packagemainimport("net/http""github.com/gin-gonic/gin")funcmain(){r:=gin.New()r.GET("/user/:id",func(c*gin.Context){//HowcanIgetthelitteralstring"/user/:id"here?c.JSON(http.StatusOK,gin.H{"message":"receivedrequest"})})}有什么方法可以在处理程序中检索乱码字符串/user/:id?如果我使用c.Request.Path,它将给我路径的完整输出,如/user/

Go 应用程序在 NGINX 代理 : HTTP 502 后面不工作

我正在为Go中的webhook创建一个接收器,这是我在Go中的第一个应用程序。我已经在本地测试了该应用程序,它在那里可以正常工作。但现在我已经将它部署在我的Ubuntu服务器上,位于NGINX代理后面的Docker容器中(代理在Docker之外)。pingHandler起作用,gitlabHandler可以发送403消息。但如果token有效,我将始终看到502消息并且NGINX日志告诉我:*1115upstreamprematurelyclosedconnectionwhilereadingresponseheaderfromupstream,client:X.X.X.X,serve

ssl - 使用 SSL 在 Nginx 反向代理后面运行 Go 服务器

我已经在互联网上进行了一些挖掘,但没有发现任何类似的东西(至少在任何适合我的解决方案附近)。本质上,我在127.0.0.1:1337上本地运行一个Golang服务器,我希望它可以在全局范围内访问,所以我使用Nginx转发来自https://api的流量。example.com/到我的API以检索信息。话虽如此,我只是简单地将我的Golang服务器设置为在端口1337上监听和服务,并且我的Nginx配置设置为重定向所有HTTP流量(对于所有域)到HTTPS:server{listen80default_server;server_name_;return301https://$host$

go - 单值上下文中的多值 f.strength

这个问题在这里已经有了答案:Multiplevaluesinsingle-valuecontext(6个答案)关闭3年前。我有函数Strength():func(gGroup)Strength()(Name[]Entity,errerror)我正在尝试调用此函数并将值存储在某个变量中,如下所示:for_,x:=rangef.Strength(){...}但是这是错误的:multiple-valuef.strengthinsingle-valuecontext