【发布时间】:2014-08-19 04:39:43
【问题描述】:
我在 golang 中使用 gorilla/mux 包,但是有一些问题。首先是我没有权限在我的应用程序上使用端口 80,因为我无法从 sudo 运行应用程序,因为使用 sudo 时没有设置 $GOPATH。
这是我从程序中得到的错误:
$ go run app.go
2014/06/28 00:34:12 Listening...
2014/06/28 00:34:12 ListenAndServe: listen tcp :80: bind: permission denied
exit status 1
我不确定当我修复 sudo 问题时它是否会起作用,因为 apache 已经在使用端口 80,我不确定我的应用程序和 apache 是否可以一起“玩得很好”。
任何关于如何解决这个问题的建议都会很棒。谢谢。
【问题讨论】:
-
您有两个选择:关闭 Apache(因为只有一个服务可以绑定到端口),或者(更好!)使用 Apache 的 ProxyPass 将任何传入请求代理到特定主机名到您的 Go 服务器在端口(例如)8000 上运行。第二种方法非常流行、健壮,您可以使用 Apache 为您处理请求日志记录和 SSL。
-
@elithrar 我是 golang 和网络编程的新手,你能提供一些 Apache 的 ProxyPass 以及我们将如何处理它吗?golang 我将非常感谢
-
您是否尝试过使用 go build app.go 构建应用程序,然后使用 sudo ./app 执行它?