netとfcgiモジュールを導入するだけで簡単に対応できた。 もっと変更点あるかと思ったが差分とったらこれぐらい。
% diff -w -U1 backendserver.go fbackendserver.go --- backendserver.go 2014-12-13 22:27:16.000000000 +0900 +++ fbackendserver.go 2014-12-13 22:35:02.000000000 +0900 @@ -6,3 +6,6 @@ "io" + "log" + "net" "net/http" + "net/http/fcgi" @@ -27,3 +30,8 @@ http.Handle("/", r) - http.ListenAndServe(":8080", nil) + listen, _ := net.Listen("tcp", ":8080") + err := fcgi.Serve(listen, r) + if err != nil { + log.Printf("error : %s", err) + } + }
nginxの設定についてはこの辺参照した。 locationのところを変更するだけ。
fastcgi_pass 127.0.0.1:8080; include fastcgi_params;
PHPFcgiExample - Nginx Community
package main import ( "fmt" "log" "net" "net/http" "net/http/fcgi" "github.com/gorilla/mux" ) func main() { r := mux.NewRouter() r.HandleFunc("/", HomeHandler) http.Handle("/", r) listen, _ := net.Listen("tcp", ":8080") err := fcgi.Serve(listen, r) if err != nil { log.Printf("error : %s", err) } } func HomeHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello World!") }
Go言語プログラミング入門on Google App Engine
- 作者: 横山隆司
- 出版社/メーカー: 秀和システム
- 発売日: 2011/12
- メディア: 単行本
- クリック: 1回
- この商品を含むブログ (5件) を見る