golang中开发http服务,可以用net/http包提供的功能。net/http包提供了非常全的功能,并且启动的http服务也非常 稳定和高效 ,完全可以用在生产环境中。
package main
import (
"fmt"
"log"
"net/http"
)
// w表示response对象,返回给客户端的内容都在对象里处理
// r表示客户端请求对象,包含了请求头,请求参数等等
func index(w http.ResponseWriter, r *http.Request) {
// 往w里写入内容,就会在浏览器里输出
fmt.Fprintf(w, "Hello golang http!")
}
func main() {
// 设置路由,如果访问/,则调用index方法
http.HandleFunc("/", index)
// 启动web服务,监听9090端口
err := http.ListenAndServe(":9090", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
运行服务:
$ go run main.go
在浏览器中访问http://localhost:9090就可以看到Hello golang http!输出了。
golang启动http服务
尽管golang http服务本身非常稳定和高效,但是实际生产环境部署中, 常常会用supervisor这样的进程管理软件来统一管理,前端再加一个nginx反向代理 。
有话要说