从弹出开发时的AppEngine Go应用程序防止OSX防火墙

问题描述 投票:3回答:3

我目前本地开发使用Go编程语言AppEngine应用程序。我的操作系统为Mac OS X 10.8.3。

我一直在AppEngine上的开发服务器(dev_appserver.py)运行为我发展。每次我保存的我的应用程序文件(其中服务器是看更改)之一,OS X防火墙弹出对话框说“你要允许_go_app接收传入连接?”。再次消失之前该对话框仅有不到第二可见。

我怎样才能得到它停止雨后春笋般冒出来的时间?我试图在这两个_go_app应用和简单的Python接受或拒绝传入连接OS X防火墙有明确的规则,但不管它会保留(简述)弹出。

macos google-app-engine dev-appserver
3个回答
0
投票

聊到了App Engine的人对谷歌组,显然这是固定的SDK(1.8.1)的最新版本。


0
投票

我没有得到防火墙弹出当我运行goapp serve,但我得到它,当我与使用go test包东西跑google.golang.org/appengine/aetest。为了解决这个问题,我需要打补丁两个文件强制所有测试服务器只在localhost听。我提交了拉请求,所以也许这将让上游固定:https://github.com/golang/appengine/pull/25

$GOPATH/src/google.golang.org/appengine/internal/main_vm.go线25;更改:

if err := http.ListenAndServe(":"+port, http.HandlerFunc(handleHTTP)); err != nil {
  log.Fatalf("http.ListenAndServe: %v", err)
}

至:

host := ""
if IsDevAppServer() {
  host = "localhost"
}
if err := http.ListenAndServe(":"+port, http.HandlerFunc(handleHTTP)); err != nil {
  log.Fatalf("http.ListenAndServe: %v", err)
}

我还需要修补$HOME/google-cloud-sdk/platform/google_appengine/lib/portpicker/portpicker/__init__.py线79:

sock.bind(('', port))

至:

sock.bind(('localhost', port))

0
投票

不知道什么改变,但我得到使用GCloud SDK捆绑dev_appserver.py此错误。 (2019年2月3日,MacOS的莫哈韦/ 10.14,谷歌云SDK 232.0.0)与围棋1.11。

一起去1.11,明确结合localhost帮助:

host := ""
if os.Getenv("NODE_ENV") == "development" {
  host = "localhost"
  log.Printf("Binding to 'localhost' only for '%s'", envPurpose)
}

srv := &http.Server{
  Handler:      r,
  Addr:         fmt.Sprintf("%s:%s", host, port),
  WriteTimeout: 10 * time.Second,
  ReadTimeout:  10 * time.Second,
}

log.Fatal(srv.ListenAndServe())

编辑:但是,尽管这对防止初期开始实施的“禁止/允许”弹出,它没有自动重启,除非帮我没有明确的app.yaml文件中声明的处理程序。显然,在后台进行更多的事情。

然而,随着“裸” app.yaml文件,它的工作根据需要我。

© www.soinside.com 2019 - 2024. All rights reserved.